簡體   English   中英

我如何才能“打破” while循環,但仍然可以進行while循環?

[英]How can I 'break out' of a while loop but still do the while loop?

我希望有一個while循環,如果某個條件為true,請不要執行下面的代碼,然后繼續while循環。 這是一些偽代碼:

boolean poop
while (poop){
    if (player.isAwesome()){
        Continue doing while loop but do not execute below code
    }
    poop = false;
}

是的,我可以這樣使用:

boolean poop
while (poop){
    boolean stopPoop = false;
    if (player.isAwesome()){
        stopPoop = true;
    }
    if (!stopPoop){
        poop = false;
    }
}

但是,這有點麻煩和不便,我想知道是否有更好的方法?

boolean poop = true;
while (poop){
    if (player.isAwesome()){
        //Continue doing while loop but do not execute below code
        continue;
    }
    poop = false;
}

是的,正確的使用continue關鍵字。 如果您想打破循環,可以使用break關鍵字

如果您有嵌套循環,則也可以繼續使用標簽。

我看不到需要poop變量。 你不能只用這個嗎

while (player.isAwesome()){

    Continue doing while loop but do not execute below code
}

在諸如此類難以預測何時終止循環的情況下,我更喜歡使用

do {
    if (player.isAwesome()){
        //Continue doing while loop but do not execute below code
        continue;
    }
    // This code will only execute once
} while (false);

這消除了布爾標志的需要,布爾標志污染了循環外的作用域。

我不贊成for (;;)while (true)因為隨着時間的流逝,以這種方式編寫的代碼的維護引入無限循環。

我假設您正在使用Java進行編碼。 所有您需要做的就是寫

continue;

在這一行中,您需要轉到while循環檢查語句。 所以:

boolean poop
while (poop){
    if (player.isAwesome()){
        continue;
    }
    poop = false;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM