最近看到乙個筆試題:
如何跳出當前的多重迴圈?
但是看到好多的答案:break,return,覺得這個答案似乎有些不妥
於是仔細推導一番
首先,不建議使用return跳出迴圈,題目也說到了是多重迴圈,
如果使用return的話,會跳出整個函式,那後續的**豈不是無法執行
所以在這裡,整理了一下自己的看法,
目前了解到的一些迴圈有for,while,do while,switch
下面一一說明
public static void main(string args)
}這裡需要說明的是,ok是用來標記跳出哪乙個迴圈
當ok標記在第一層(最外層)迴圈的時候,相當於return的功能,跳出整個迴圈
"***"只會輸出一次
而當ok標記在第二層的時候,將相當於break的功能,只跳出當前的迴圈
而"***"會在不執行第二層的情況下,完成第一層的迴圈
for(int i=0;i<10;i++)
}//使用自定義的boolean變數,配合迴圈條件一起共同滿足方可執行迴圈
//另外需要注意的時候,在跳出條件成立時,不僅設定flag的值,同時也要加上break
這裡需要說明的是,!flag是用來標記跳出哪乙個迴圈
當!flag標記在第一層(最外層)迴圈的時候,如果跳出條件成立,則會關閉第一層的迴圈
相當於return;的功能
boolean flag=false;
for(int i=0;i<5&&!flag;i++)
system.out.println(j);}}
當!flag標記在第二層的時候,
程式會先執行一次"***",然後再執行第二層迴圈,當跳出條件成立時,就關閉當前的迴圈
而下一次迴圈時,只會執行第一層的迴圈,記住,這個!flag是關閉迴圈,而不是跳出
boolean flag=false;
for(int i=0;i<5;i++)
system.out.println(j);}}
最後一種才是所謂的break,由一層迴圈開始,到第二層。
當跳出條件成立,就跳出當前的迴圈,
繼而又從一層開始迴圈,在到第二層,又等到跳出條件成立,從一層開始
周而復始
for(int i=0;i<5;i++)
system.out.println(j);}}
另外,對於while和switch都可使用標記,但是貌似switch目前還不會用boolean值做條件
int i=0;
ok:while(true)
int i=0;
boolean flag=false;
while(true&&!flag)
int i=0;
ok:dowhile(true);
int i=0;
boolean flag=false;
dowhile(true&&!flag);
貌似 switch只能用標記吧
int x=3;
ok:switch(x)
system.out.println(x);
Python 如何跳出多重迴圈
在leetcode上刷演算法題的時候遇到了乙個問題,就是在python中不知道用什麼方法跳出多重迴圈。查閱相關資料後,參考博文中的方法成功解決。如下所示 for i in range 5 for j in range 5 for k in range 5 if i j k 3 break else ...
在java中,怎樣跳出當前的多重迴圈?
直接用break 詳細舉比例如以下 package com.test public class test public static void main string args for int i 0 i 5 i for int j 0 j輸出結果 i 1 j 0 i 2 j 0 i 2 j 1 i...
python跳出多重迴圈
今天同事問我乙個python面試題,關於python跳出多層迴圈,原來還真沒用過,網上一查還真有點意思,下面記錄一下 python 本身沒有 break n 和 goto 的語法,這也造成了python 難以跳出多層 特定層數 迴圈。下面是幾個跳出多層 特定層數 迴圈的tip。class getou...