C語言退出多層嵌套循環技巧


由於break語句只能影響它的最內層循環,要想立即從深層嵌套循環中退出,有哪些方法呢?

1、使用goto語句:

while(condition1) {
    while(condition2) {
        while(condition3) {
            if(some disaster)
                goto quit;
        }
    }
}
quit:;

要想在這種情況下避免使用goto語句,可以考慮以下兩種方案:

2、設置狀態標志:

當你希望退出所有循環時設置一個狀態標志,但這個標志在每個循環中都必須進行測試:

enum{EXIT, OK}status;
...
status = OK;
while(status == OK && condition1) {
    while(status == OK && condition2) {
        while(condition3) {
            if(some disaster)
                status = EXIT;
                break;
        }
    }
}

3、使用函數返回:

把所有的循環都放在一個單獨的函數里,當災難降臨在最內層的循環的時候,可以使用return語句離開這個函數

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM