跳轉語句中斷繼續轉到退出

中斷指令:

使用 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 也可用於其他條件和非條件迴圈,如 ifwhilefor 等;

例:

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 迴圈的開頭。

退出功能:

exitcstdlib 中定義的函式。exit 的目的是使用特定的退出程式碼終止正在執行的程式。它的原型是:

void exit (int exit code);

cstdlib 定義了標準退出程式碼 EXIT_SUCCESSEXIT_FAILURE