我正在使用一個while (true){ if (x == y) { break; } else { //do stuff }}像這樣循環,該框架只是一個示例框架,因為實際代碼本身非常復雜且過于復雜,需要“break;” 在多個不同區域針對多個不同條件進行聲明。我的問題是;有沒有一種方法可以編寫循環語句而不需要循環檢查條件?除了 while(true) 之外,還有更有效的方法來編寫無限循環嗎?編輯:(java)編輯2:while (a < b){ while (true) { if (c < d) { if (e == null) { //do alot of stuff break; } else { //do something } } else if (d > c) { if (e == null) { //do alot of stuff break; } else { //do something } } else if (d == c) { break; } } a = a + 1;}
3 回答

慕沐林林
TA貢獻2016條經驗 獲得超9個贊
有沒有一種方法可以編寫循環語句而不需要循環檢查條件?除了 while(true) 之外,還有更有效的方法來編寫無限循環嗎?
您可以通過多種方式編寫無限循環,但它們都是等效的。兩者實際上并不比其他方法更有效:
while (true) { ... }
do { ... } while (true);
for (;;) { ... }
根據實際代碼,將“中斷循環邏輯”反轉為“繼續循環邏輯”可能是有意義的,如下所示:
boolean continueLoop;
do {
continueLoop = false;
// ... do stuff ...
if ( some condition ) {
continueLoop = true;
}
// ... do stuff ...
} while (continueLoop);

楊__羊羊
TA貢獻1943條經驗 獲得超7個贊
if對于您的特定示例,您可以將語句中的中斷邏輯移至while條件:
while (x != y) {
// do stuff
}
事實上,如果您的原始while循環有多個中斷條件,您也許可以將它們全部移動到該while條件,例如
while (!cond1 && !cond2 ... ) {
// execute
}
添加回答
舉報
0/150
提交
取消