該例子說明幾個問題
1. break用法: (1) break如果用於循環,則是用來終止循環。 (2) break如果用於switch,則是用來終止switch。 (3) break不能直接用於if,除非if屬於循環內部的一個子句。 (4) break用於多層for循環,break只能終止距離它最近且包含break的那層for循環。 (5) break用於多個switch嵌套,break只能終止距離它最近且包含break的那個switch。 2. continue用法: 用於跳過本次循環余下的語句,轉去判斷是否需要執行下次循環。 原文:C語言大綱-郝斌/********************************************************************* haha Press any key to continue#include <stdio.h>
int main(void){/* switch (2) { case 2: printf("haha\n"); break; // ok break用於switch, 是用來終止switch。 }*/
/* if (2 > 1) { printf("hello\n"); break; // error break不能直接用於if }*/
/* for (int i = 0; i < 3; i++) { if (2 > 1) { printf("haha\n"); break; // ok break雖然是if的一個子句,但是它是用於終止for循環的。 } printf("heihei\n"); // 永遠不會輸出 }*/
/* for (int i = 0; i < 3; i++) { for (int j = 1; j < 4; j++) { break; // 在多層循環中,break只能終止距離它最近且包含break的那層循環 } printf("haha\n"); }*/
/* int x = 1, y = 0, a = 0, b = 0; switch (x) { case 1: switch (y) { case 0: a++; break; // 終止的是內層switch case 1: b++; break; } b = 100; break; // 終止的是外層switch case 2: a++; b++; break; }
printf("%d %d\n", a, b);*/
/* for (1; 2; 3) { A; B; continue; // 如果執行該語句,則執行完該語句後,會執行3語句,C和D語句都會被跳過去。為什麼還要有continue和C、D語句? C; D; } while (表達式) { A; B; continue; // 如果執行該語句,則執行完該語句後,會執行表達式,C和D語句都會被跳過去。為什麼還要有continue和C、D語句? C; D; }*/
// scanf對用戶非法輸入的處理 int i; char ch; scanf("%d", &i); printf("i = %d\n", i); while ((ch = getchar()) != '\n') // getchar()等待用戶從鍵盤上輸入一個字符。 continue; int j; scanf("%d", &j); printf("j = %d\n", j); return 0;}