如何跳出當前的多重迴圈?

2021-06-14 04:52:21 字數 1572 閱讀 9865

最近看到乙個筆試題:

如何跳出當前的多重迴圈?

但是看到好多的答案: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...