这个Java for循环终止条件是什么意思?

时间:2015-11-08 06:37:47

标签: java loops for-loop

我想知道这里是否有人知道终止条件是什么 以下for循环应该是指。

for (int i = 0; i < 1 << Level; i++) {
...
}

3 个答案:

答案 0 :(得分:8)

<<将第一个操作数n次的位移到左侧,其中n是第二个操作数。

因此,1 << Level将数字1 1的单个Level位向左移动,这相当于计算2 ^ Level。

因此i < 1 << Level相当于i < Math.pow(2,Level)

答案 1 :(得分:3)

简单说明

for (int i = 0; i < 1 << Level; i++) {
...
}

等于

for (int i = 0; i < Math.pow(2,Level); i++) {
...
}

所以for循环将运行“Math.pow(2,Level)”次,因为你从0计算到Math.pow(2,Level)-1。

如果Level = 2则循环为

for(int i =0;i<4;i++){}

如果Level = 3则循环为

for(int i =0;i<8;i++){}

如果Level = 5则循环为

for(int i =0;i<32;i++){}

答案 2 :(得分:0)

除了其他答案之外,如果不清楚,可能有助于在表达式周围添加括号

for (int i = 0; i < (1 << Level); i++) {
...
}

此外,由于Level是变量,因此建议使用小写字母level除非它是常量,否则它应为LEVEL。我认为一般来说可读性&gt;性能(如果它甚至是一个问题?)。因此,如果您不是低级程序员,Math.pow(2,Level)更容易理解,看起来更像Java而不是C。

相关问题