如果我在另一個while回圈(b)中有一個while回圈(a)并且我在'b'回圈中使用了break陳述句,它是否也會跳出'a'回圈還是留在'a'中環形?
uj5u.com熱心網友回復:
break;switch只從它出現的最里面的回圈或主體中中斷。
如果您打算從嵌套回圈中中斷,您可以考慮將嵌套回圈移動到一個單獨的函式中,并使用return從其主體內的任何點退出該函式。
例子:
...
int matrix[ROWS][COLS];
int value;
...
int found = 0;
for (int row = 0; row < ROWS; row ) {
for (int col = 0; col < COLS; col ) {
if (matrix[row][col] == value) {
found = 1;
break;
}
}
if (found)
break;
}
...
可以簡化為:
int hasvalue(int matrix[ROWS][COLS], int value) {
for (int row = 0; row < ROWS; row ) {
for (int col = 0; col < COLS; col ) {
if (matrix[row][col] == value)
return 1;
}
}
return 0;
}
...
int matrix[ROWS][COLS];
int value;
...
found = hasvalue(matrix, value);
...
uj5u.com熱心網友回復:
break 陳述句會跳出多個回圈嗎?
否:
break 陳述句終止執行最小的封閉 switch 或迭代陳述句。
uj5u.com熱心網友回復:
break宣告檔案:
導致封閉的 for、while 或 do-while 回圈或 switch 陳述句終止。
封閉陳述句,單數。
uj5u.com熱心網友回復:
它打破了包含它的最里面的回圈
https://beginnersbook.com/2014/01/c-break-statement/
for(int i = 0; i < 10; i ){
int x = foop();
nargel();
for (int j = 0; j < 20; j ){
int k = fringle(i,j);
if(are_we_done_yet(k))
break; <<<<<<<<<<<<<<====== this goes
}
blink(); <<<<<<<<<<<<===== here
}
for某些語言允許您通過給出a 標簽而不是 c來說明要跳出哪個回圈。Java 例如https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html
uj5u.com熱心網友回復:
該關鍵字break僅適用于當前回圈。您不能使用單個 打破任何封閉回圈的最外層回圈break,您需要設定一個標志以便在每個回圈開始時在它變為非空時中斷。如果您還在同一回圈級別中使用continueand 多個break/會變得更加棘手continue,但可以做到。
例子:
int must_break = 0 ;
...
...
for (int l1=0;l1<LIMIT1;l1 ) {
...
...
for (int l2=0;l2<LIMIT2;l2 {
...
...
for (int l3=0;l3<LIMIT3;l3 {
...
...
if (INTERNAL_BREAK_CONDITION) {
// This flag will cause all outer loops to break instantly in cascade.
must_break = 1 ;
break ; // Break L3
}
}
// Must be placed just after the possibly breaking loop.
if (must_break) // Break L2
break ;
}
// Must be placed just after the possibly breaking loop.
if (must_break) // Break L1
break ;
}
// Here, you can test: if "must_break" is non-null, then a break occurred.
if (must_break)
printf("Break detected!\n");
或者您可以在地獄中為自己買一個溫暖的地方并使用 agoto來打破所有回圈......但顯然,除了匯編程式之外,大多數編程語言都沒有考慮到它。在 C 語言中,在低級驅動程式/內核模塊之外,無論發生什么,它通常都是“不可行的”。但它有效......它不可維護,但它有效。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/446329.html
上一篇:如何使用回圈給“Future.wait()”一個期貨串列
下一篇:我如何擺脫陣列中的未定義?
