学习Java - 在这个例子中不理解减量

时间:2014-07-26 04:26:05

标签: java

public class Power {

public static void main(String[] args) {
    // TODO Auto-generated method stub

    int e;
    int result;
    for (int i=0; i<10; i++){
        result = 1;
        e = i;

        while(e > 0) {
            result *=2;

//这个例子中的e--是什么?如果在i&lt; 10的每次迭代之后e = i,那么我不知道为什么e递减。提前谢谢!

            e--;
        }

        System.out.println("2 to the " +i + " power is " + result);
    }


}

}

4 个答案:

答案 0 :(得分:3)

谨慎e是必要的,以避免无限循环。但请继续阅读以了解整个方法如何以此表达式完成:

1 << i;

除非e递减,否则为while条件

while(e > 0)

如果真的最初将保持为真。

但是,这个等效代码更可取:

for (int e = i; e > 0; e--) {
    result *= 2;
}

因为它更清楚发生了什么。

或许不太清楚,但更优雅的是:

result << e;

因为乘以2与左移位1相同。


实际上整个循环可以只用一行代替:

for (int i=0; i<10; i++)
    System.out.println("2 to the " +i + " power is " + (1 << i));

无需变量resulte

答案 1 :(得分:2)

e基本上用作计数器,用于完成电源的次数。由于它是一个幂,2必须多次乘以i,因此e充当“计数器”,因此2乘以相应的次数。

每次e--出现时,2乘以其自身,所以当e等于i且e递减时,2连续乘以自身直到达到指定的数量:i。

答案 2 :(得分:0)

这是我的程序,这是计算指数时可接受的方式。

 you can use Math.pow(x, y)..which is x^y..(^ is not xor here) 



 import acm.program.*;


    public class Exponents extends ConsoleProgram {

      public void run(){
          for (int n = 0; n <= 10; n++) {

                println("2 to the power of " + n + " = " + Math.pow(2,n)); 

         } 

      }
    private int raiseIntPower (int n){
       int total = 0;
       for( int n = 0; n <= 10; n++){
         total = Math.pow(2, n);

      } 

    return total; 
      }
    }

答案 3 :(得分:0)

e被递减,因此程序可以继续为整数结果设置新值。它在循环中被用作计数器。