跳出迴圈的三種方式
阿新 • • 發佈:2019-01-29
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。