1. 程式人生 > >跳出迴圈的三種方式

跳出迴圈的三種方式

break、continue、goto三個關鍵字都可以用於跳出迴圈,但三者跳出迴圈的情況卻有所不同
braek:跳出本層迴圈,執行本層迴圈下面的語句。
continue:終止本次迴圈,進入下一次迴圈。
goto:調到標號所在位置,執行標號下面的語句,它比較方便的是可以一次跳出多重迴圈,但是它只能在函式內跳轉,不能在函式間跳轉。goto語句有一定的弊病,會使程式的流程變得混亂,有時會難以理解,並且程式的除錯與排錯也會變得複雜。

#include<stdio.h>

int main()
{
    int num = 0;
    int i = 0;
    for (int
i = 0; i < 10; i++) { if (num == 5) { break; num += 2; } num += 1; } printf("%d\n", num); system("pause"); return 0; }

輸出結果為5。
當num =5時,程式直接跳出迴圈,執行輸出語句,故輸出為5。

#include <stdio.h>

int main()
{
    int num = 0;
    int
i = 0; for (int i = 0; i < 10; i++) { if (num == 5) { num += 2; //此處要是不加這條語句,num會一直等於5,使之後每次進入迴圈時都會從此處 //終止而進入下一次迴圈,num的值不再改變 continue; } num += 1; } printf("%d\n", num); system("pause"); return
0; }

輸出結果為11。
當num = 5時,程式先給num加2(避免以後每次進入時num還為5,會一直continue直到迴圈結束),終止本次迴圈,進入下一次迴圈,直到i = 10時跳出迴圈,執行輸出語句,境分析也可得處輸出為11.

#include<stdio.h>

int main()
{
    int num = 0;
    int i = 0;
    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)
        {
            if (num == 20)
            {
                goto logo;
            }
            num += 1;
        }

    }
    logo:
    printf("%d\n", num);
    system("pause");
    return 0;
}

輸出結果為20。
當num = 20時,程式進入if語句塊,執行goto語句,使程式執行位置跳轉到goto語句標號所在位置的下一條語句去,即輸出語句,因此程式輸出為20。