【发布时间】:2016-06-11 19:43:50
【问题描述】:
// Compute integer powers of 2.
class Power {
public static void main(String args[]) {
int e;
int result;
for (int i = 0; i < 10; i++) {
result = 1;
e = i;
while(e > 0) {
result *= 2;
e--; // What is supposed to be decrementing and how???
}
System.out.println("2 to the " + i +
" power is " + result);
}
}
}
为什么while循环有递减,但运行程序时给人的印象却是递增。这让我很困惑,请有人解释一下这个 While 循环是如何操作的?
C:\Users\enrique\Desktop\Hello.java>java 电源
2 的 0 次方是 1
2 的 1 次方是 2
2 的 2 次方是 4
2 的 3 次方是 8
2 的 4 次方是 16
2 的 5 次方是 32
2 的 6 次方是 64
2 的 7 次方是 128
2 的 8 次方是 256
2的9次方是512
【问题讨论】:
-
哦,好吧,抱歉。这是我的第一次。谢谢!
-
您正在打印 i ,它在每次迭代中递增。 e 只是控制 2 应该相乘的次数
-
谢谢,我会尝试您发布的不同替代方案。
-
为什么不简单地
result = 1 << i;?或者,为什么不在循环外初始化result = 1,在 print 语句之前什么都不做,然后加倍呢?