由於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語句離開這個函數