为什么我的程序什么都不返回?

时间:2015-01-10 11:09:02

标签: java return-value

我刚开始学习java,出于某种原因,我的程序在编译时没有返回任何内容。

目标: 编写一个名为 printPowersOf2 的方法,该方法接受最大数量作为参数,并将每个2的幂从20(1)打印到最大功率(包括最大值)。例如,请考虑以下调用:

printPowersOf2(3);
printPowersOf2(10);

这些调用应产生以下输出:

1 2 4 8
1 2 4 8 16 32 64 128 256 512 1024

问题也可以从here

找到

我的代码:

public class Test{
   public static void main(String[] Args){
      printPowersOf2(3);
      printPowersOf2(10);           
    }
    public static int printPowersOf2(int num){
      double b = Math.pow(2,num);
      int a = (int)b;
      return a;
    }
}

2 个答案:

答案 0 :(得分:3)

它确实返回了值,但这不是你想要的。你想打印它!您应该使用以下方法在循环中打印值:

System.out.printf("%d ", a);

而不是return a;完整的功能:

public static void printPowersOf2(int num) {
    for (int i = 0; i < num; i++) {
        System.out.print("%d ", Math.pow(2, i));
    }
    System.out.println(); // for the line break
}

不需要double,因为这些数字是完美的正方形。

答案 1 :(得分:1)

我认为你的代码应该是:

public class Test{
   public static void main(String[] Args){
      printPowersOf2(3);
      printPowersOf2(10);           
    }
    public static void printPowersOf2(int num){
      for(int i = 0; i <= num; ++i)
      {
          double b = Math.pow(2,num);
          System.out.print(b + " ");
      }
    }
}

您不必返回任何东西。您只需要在函数内打印。