順序執行 C 語言的程式是順序執行,即先執行前面的語句,再執行後面的語句。 條件執行 if if語句用於條件判斷,滿足條件時,就執行指定的語句。 if (expression) { statement // 表達式expression為真(非 0 值)時,就執行 statement 語句。 } if ...
順序執行
C 語言的程式是順序執行,即先執行前面的語句,再執行後面的語句。
條件執行
- if
if
語句用於條件判斷,滿足條件時,就執行指定的語句。
if (expression) {
statement // 表達式expression為真(非 0 值)時,就執行 statement 語句。
}
if (line_num == MAX_LINES) {
line_num = 0;
page_num++;
}
對於只有一條語句的語句體,可以省略大括弧。
if (x == 10)
printf("x is 10\n");
- if else
if (expression) {
statement
} else { // else 分支,指定條件不成立時(表達式 expression 的值為 0),所要執行的代碼。
statement
}
- if else if
if (expression) {
statement
} else if (expression) {
statement
} ...
else {
statement
}
- switch
switch (expression) {
case value1:
statement
case value2:
statement
default:
statement
}
根據表達式expression
不同的值,執行相應的case
分支。如果找不到對應的值,就執行default
分支。
switch (grade) {
case 0:
printf("False");
break; // 如果缺少 break,就會導致繼續執行下一個 case 或 default 分支。
case 1:
printf("True");
break;
default:
printf("Illegal");
}
- 三元運算
<expression1> ? <expression2> : <expression3>
表達式expression1
如果為true
(非 0 值),就執行expression2
,否則執行expression3
。
迴圈執行
- while
while
語句用於迴圈結構,滿足條件時,執行迴圈體。此外,迴圈體內部可以用break
語句跳出迴圈。
while (expression) {
statement // expression 為非零值(表示真),就會執行statement語句,然後再次判斷 expression 是否為零;
}
- do while
不管條件expression
是否成立,迴圈體statement
至少會執行一次。每次statement
執行完畢,就會判斷一次expression
,決定是否結束迴圈。
do {
statement
} while (expression);
- for
for (迴圈變數初始化; 條件判斷; 修改迴圈變數){
statement;
}
每個部分可以有多條語句。
int i, j;
for (i = 0, j = 999; i < 10; i++, j--) {
printf("%d, %d\n", i, j);
}
break 語句
break
語句有兩種用法。
-
一種是與
switch
語句配套使用,用來中斷某個分支的執行。 -
另一種用法是在迴圈體內部跳出迴圈,不再進行後面的迴圈了。
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d, %d\n", i, j);
break; // break 語句使得迴圈跳到下一個 i。
}
}
註意,break
命令只能跳出迴圈體和switch
結構,不能跳出if
結構。
continue 語句
continue
語句用於在迴圈體內部終止本輪迴圈,進入下一輪迴圈。
while ((ch = getchar()) != '\n') {
if (ch == '\t') continue; // 只要讀到的字元是製表符(\t),就跳過該字元,讀取下一個。
putchar(ch);
}
goto 語句
goto 語句用於跳到指定的標簽名處。
char ch;
top: ch = getchar();
if (ch == 'q')
goto top;
goto 的一個主要用法是跳出多層迴圈。
while (...) {
do {
if (some_error_condition)
goto bail;
} while(...);
}
bail:
參考: C 語言教程