我想知道如果這裏有誰知道什麼 的終止條件 for循環下面的解釋是:。此Java for循環終止條件是什麼意思?
for (int i = 0; i < 1 << Level; i++) {
...
}
我想知道如果這裏有誰知道什麼 的終止條件 for循環下面的解釋是:。此Java for循環終止條件是什麼意思?
for (int i = 0; i < 1 << Level; i++) {
...
}
<<
移動第一操作數的比特n
倍到左側,其中n
是第二操作數。
因此1 << Level
將1
Level
次的單個1
位移位到左側,這相當於計算2^Level。因此i < 1 << Level
等於i < Math.pow(2,Level)
。
簡單地說
for (int i = 0; i < 1 << Level; i++) {
...
}
等於
for (int i = 0; i < Math.pow(2,Level); i++) {
...
}
所以,既然你是從0開始計數的for循環會爲「Math.pow(2級)」 跑倍Math.pow(2,級別)-1。
如果電平= 2,則環是
for(int i =0;i<4;i++){}
如果電平= 3,則環是
for(int i =0;i<8;i++){}
如果電平= 5則環路是
for(int i =0;i<32;i++){}
在除了其他的答案它可能會幫助把括號圍繞表達式如果不清楚
for (int i = 0; i < (1 << Level); i++) {
...
}
此外,由於Level
是,建議將具有小的字母即level
,除非它是一個恆定的變量,那麼它應該是LEVEL
。我認爲一般來說,可讀性>性能(如果它甚至是一個問題?)。所以Math.pow(2,Level)
是更容易理解,如果你不是一個低水平的程序員,看起來更象Java比C
''<<是位運算符。它乘以2個關卡時間。 –