跳轉語句中斷繼續轉到退出
中斷指令:
使用 break 我們可以留下一個迴圈,即使它的結束條件沒有得到滿足。它可用於結束無限迴圈,或強制它在自然結束之前結束
語法是
break;
示例 :我們經常在 switch
情況下使用 break
,即一旦滿足 i 開關的情況,則執行該條件的程式碼塊。
switch(conditon){
case 1: block1;
case 2: block2;
case 3: block3;
default: blockdefault;
}
在這種情況下,如果滿足情況 1 然後執行塊 1,我們真正想要的只是要處理的塊 1,而是一旦處理了塊 1,剩餘塊,塊 2,塊 3 和塊預設也被處理,即使只有情況 1 被滿足為了避免這種情況,我們在每個塊的末尾使用 break,如:
switch(condition){
case 1: block1;
break;
case 2: block2;
break;
case 3: block3;
break;
default: blockdefault;
break;
}
因此只處理了一個塊,控制器移出開關迴圈。
break 也可用於其他條件和非條件迴圈,如 if
,while
,for
等;
例:
if(condition1){
....
if(condition2){
.......
break;
}
...
}
繼續說明:
continue 指令使程式在當前迭代中跳過迴圈的其餘部分,就好像已經到達語句塊的結尾一樣,導致它跳轉到下一次迭代。
語法是
continue;
示例考慮以下內容:
for(int i=0;i<10;i++){
if(i%2==0)
continue;
cout<<"\n @"<<i;
}
產生輸出:
@1
@3
@5
@7
@9
我的程式碼只要滿足 i%2==0
條件 continue
被處理,這會導致編譯器跳過所有剩餘的程式碼(列印 @和 i),並且迴圈的遞增/遞減語句被執行。
https://i.stack.imgur.com/Fbuep.jpg
goto 指令:
它允許絕對跳轉到程式中的另一個點。你應該小心使用此功能,因為它的執行會忽略任何型別的巢狀限制。目標點由標籤標識,然後標籤用作 goto 指令的引數。標籤由有效識別符號後跟冒號(:)組成
語法是
goto label;
..
.
label: statement;
注意: 強烈建議不要使用 goto 語句,因為它很難跟蹤程式的控制流程,使程式難以理解且難以修改。
https://i.stack.imgur.com/Li8ZR.jpg
示例:
int num = 1;
STEP:
do{
if( num%2==0 )
{
num = num + 1;
goto STEP;
}
cout << "value of num : " << num << endl;
num = num + 1;
}while( num < 10 );
輸出:
value of num : 1
value of num : 3
value of num : 5
value of num : 7
value of num : 9
只要條件 num%2==0
滿足,goto 就會將執行控制傳送到 do-while
迴圈的開頭。
退出功能:
exit
是 cstdlib
中定義的函式。exit
的目的是使用特定的退出程式碼終止正在執行的程式。它的原型是:
void exit (int exit code);
cstdlib
定義了標準退出程式碼 EXIT_SUCCESS
和 EXIT_FAILURE
。