C語言中,break語句可用於從for、while與do-while等循環中提前退出,也可以用從switch語句中跳出。在多層循環中break實現從最內層循環退出到上一級循環。
continue語句用於使for、while與do-while語句開始下一次循環的執行。在while與do-while中,continue語句的執行意味着立即執行測試部分;在for循環中,則意味着使控制轉移到遞增循環變量部分。
注意:continue語句只用於循環語句,不用於switch語句。在某個循環包含的switch語句中的continue語句,將導致進入下一次循環。
下面就來說說在某個循環中包含的switch語句中的continue語句和break語句的區別。
#include <stdio.h> int main() { int i, s1 = 0, s2 = 0, s3 = 0; for(i = 1; i <= 4; i++) { switch(i) { case 1: s1++; case 2: s2++; break; case 3: s3++; continue; } s1++; printf("%d,%d,%d\n", s1, s2, s3); } return 0; }
運行的結果如下:
如上所示 :使用break將跳出本switch但仍將執行for循環的剩餘語句;使用continue則直接跳至i++進行下一次for循環執行。
第一次循環,case 1, s1先加1, s2也加1,遇到break後跳出switch,執行s1++,輸出這三個數;
第二次循環,case 2, s2加1,遇到break後跳出switch,執行s1++,輸出這三個數;
第三次循環,case 3, s3加1,遇到continue, 跳出本次循環(不執行s1++和printf());
第四次循環,case 4,switch語句中沒有匹配的,跳過switch,執行s1++,輸出三個數。
這也就是爲什麼四次循環卻只有三次輸出的原因。