循环从不开始

时间:2017-11-05 21:49:10

标签: java for-loop

我正在尝试编写一个小方法来计算给定数字和幂的指数(我知道math.pow我只是为了踢)。然而,我的方法中的循环永远不会开始,我无法弄清楚为什么。我的代码如下,所有帮助表示赞赏。

public static void main(String[] args) {

int result = exponantCalculation(2, 3);

System.out.println(result);

}

public static int exponantCalculation(int number, int power) {
    for (int i = 1;i >= power;i++) {
        number = number * number;
    }
    return number;
}

3 个答案:

答案 0 :(得分:2)

  1. 您在循环条件中使用了错误的比较运算符(>=,应该是<=< - 请参阅其他答案。)

  2. 不确定,也许这是故意的,但如果该方法是为了计算“numberpower的力量”,那么你就错误对结果进行平方上一次迭代。这将产生更高的值numberpower的力量。 您需要引入一个新变量并将其与循环中的number相乘,例如:

    long result = 1;
    for (int i = 0; i < power; i++) {
        result *= number; // same as "result = result * number"
    }
    return result;
    

    次要注意:我故意使用long类型作为结果,这可能稍微推迟大值的整数溢出问题。

答案 1 :(得分:1)

for loop内的条件错误。

由于您在方法中将3作为power作为参数传递,i初始化为1,然后检查条件是否为i>=power在这种情况下显然不正确,所以你的循环永远不会开始。

更改

for (int i = 1;i >= power;i++)

for (int i = 1;i <= power;i++)

如果您想计算任何数字的功率,可以使用以下方法

public static int exponantCalculation(int number, int power) {

      int result = 1;
      for (int i = 1;i <= power;i++) {
          result = result * number; 
      }  
      return result;
}

答案 2 :(得分:0)

for循环条件错误,但您还需要将结果存储在另一个变量中:

 public static int exponantCalculation(int number, int power) {
    if(power == 0){
      return 1;
    }
    int result = 1;
    for (int i = 1;i <= power;i++) {
        result *= number;
    }
    return result;
}
相关问题