break 與 continue 敘述的使用
(一) break 敘述
◎も使用時機: 在迴圈(不論是for迴圈或while迴圈)執行時,通常要把「要重複的敘述群」執行完一遍之後,再去檢視迴圈「條件式」是否成立。如果需要臨時強迫離開迴圈,也就是把還沒執行完的敘述群丟在一邊,直接離開迴圈時(不必管條件式成不成立),就是使用break敘述的時機。此敘述一般要搭配 if 敘述使用才恰當。
◎も圖示:
for 或 while ( ..... )
{
....... A段 .......
if (條件式)
break ;
....... B段 .......
}
....... C段 .......
從上段程式來說,如果執行到 if 敘述時其「條件式」成立,那麼接下來執行 break敘述之後,程式流程就會省略B段部分,直接跳到C段去執行,換言之就是離開迴圈了。
◎も範例:電腦以亂數產生一數(num)之後,使用者不斷猜測該數(guess),每次猜測時電腦必須提示猜的太大或太小,此動作一直重複直到猜中為止。
count = 1 ;
while (true)
{
printf ("第 %d 次猜測:\n", count) ;
printf ("請猜測一數:") ;
scanf ("%d", &guess) ;
if (guess > num)
printf ("太大!\n") ;
else if (guess < num)
printf ("太小!\n") ;
else
{
printf ("猜中了!\n") ;
break ;
}
count++ ;
// 如果猜中了則此行不會執行
} // while loop
(二) continue 敘述
◎も使用時機: 在迴圈(不論是for迴圈或while迴圈)執行時,通常要把「要重複的敘述群」執行完一遍之後,再去檢視迴圈「條件式」是否成立。在某些時候如果需要暫停『本次』迴圈,也就是把還沒執行完的敘述群先丟在一邊,重新檢視迴圈「條件式」準備重啟迴圈時,就是使用continue敘述的時機。此敘述一般要搭配 if 敘述使用才恰當。
◎も圖示:
for 或 while ( ..... )
{
....... A段 .......
if (條件式)
continue ;
....... B段 .......
}
從上段程式來說,如果執行到 if 敘述時其「條件式」成立,那麼接下來執行continue敘述之後,程式流程就會省略B段部分(當作本次迴圈已經執行完畢),重回到迴圈的條件式判斷。換言之就是本次迴圈執行完畢,要繼續下一次的條件式檢視了。
◎も範例:將 2到100中的偶數相加,但必須排除10的倍數,也就是2+4+6+8+12+14+.....,最後印出總和。
sum = 0 ;
for (x=2 ; x<=100 ; x+=2)
{
if (x % 10 == 0)
// 如果 x是10的倍數則閃過後面的 sum = sum + x; 敘述
continue ;
sum = sum + x;
}
printf ("總和:%d \n", sum) ;