C 程式設計/語句
一個語句是給計算機的指令,指示計算機執行特定操作,例如顯示到螢幕或收集輸入。計算機程式由一系列語句組成。
在 C 語言中,語句可以是以下任何一種
語句可以由一個標籤引導。C 語言中有三種類型的標籤。
一個簡單的識別符號後面跟著一個冒號 (:) 就是一個標籤。通常,這個標籤是 goto 語句的目標。
在 switch 語句中,存在 case 和 default 帶標籤的語句。
具有以下形式的語句
case 常量表達式 : 語句
表示如果 switch 語句的控制表示式的值與 常量表達式 的值匹配,則控制將傳遞到該語句。(在這種情況下,常量表達式 的型別必須是整數或字元。)
具有以下形式的語句
default : 語句
表示如果 switch 語句的控制表示式與 switch 語句中的任何 常量表達式 不匹配,則控制將傳遞到該語句。如果 default 語句被省略,控制將傳遞到 switch 語句後面的語句。在 switch 語句中,只能有一個 default 語句,除非 switch 語句在另一個 switch 語句中。
一個複合語句是 C 語言將多個語句分組為單個語句的方式。它包含在花括號 (即 { 和 }) 中的多個語句和宣告。在 1989-1990 年的 ANSI C 標準中,複合語句包含一個可選的宣告列表,後面跟著一個可選的語句列表;在標準的更新版本中,宣告和語句可以自由地穿插在程式碼中。函式體也是一個複合語句。
一個表示式語句由一個可選的表示式後跟一個分號 (;) 組成。如果表示式存在,語句可能會有一個值。如果表示式不存在,該語句通常稱為空語句。
printf 函式呼叫是表示式,所以像 printf ("Hello World!\n"); 這樣的語句是表示式語句。
C 語言中有三種選擇語句
if ( 表示式 ) 語句
在這種型別的 if 語句中,子語句只有在表示式非零時才執行。
if ( 表示式 ) 語句 else 語句
在這種型別的 if 語句中,只有在表示式非零時才執行第一個子語句;否則,執行第二個子語句。每個 else 與最近的未匹配的 if 匹配,所以以下兩段程式碼並不相等
if (expression)
if (secondexpression) statement1;
else
statement2;
if (expression)
{
if (secondexpression) statement1;
}
else
statement2;
因為在第一個程式碼段中,else 語句與 secondexpression 為控制的 if 語句匹配,但在第二個程式碼段中,大括號迫使 else 與 expression 為控制的 if 語句匹配。
switch 語句也是一種選擇語句。它們具有以下格式
switch ( 表示式 ) 語句
這裡的表示式是一個整數或一個字元。這裡的語句通常是複合語句,它包含帶標籤的 case 語句,並可以選擇包含帶標籤的 default 語句。複合語句不應包含區域性變數,因為跳轉到內部標籤可能會跳過此類變數的初始化。
C 語言有三種迭代語句。第一種是 while 語句,其形式為
while ( 表示式 ) 語句
只要控制表示式在每次迭代開始時都計算為非零,while 的子語句就會重複執行。如果控制表示式第一次計算為零,子語句可能根本不會執行。
第二種是 do-while 語句,其形式為
do 語句 while ( 表示式 ) ;
這與 while 迴圈類似,只是控制表示式在迴圈結束時而不是開始時計算,因此子語句必須至少執行一次。
第三種迭代語句是 for 語句。在 ANSI C 1989 中,它具有以下形式
for ( 表示式opt ; 表示式opt ; 表示式opt ) 語句
在 C 標準的更新版本中,一個宣告可以替代第一個表示式。opt 下標表示表示式是可選的。
語句
for (e1; e2; e3)
s;
大致等效於
{
e1;
while (e2)
{
s;
e3;
}
}
除了 s 中的 continue 語句的行為。
e1 表示式表示一個初始條件;e2 表示一個控制表示式;e3 表示迴圈的每次迭代要發生的事情。如果 e2 缺失,則該表示式被認為在每次迭代中都非零,只有 s 中的 break 語句(或對 exit 或 abort 等非返回函式的呼叫)才會結束迴圈。
C 語言有四種類型的跳轉語句。第一個是 goto 語句,很少使用,其形式為
goto 識別符號 ;
此語句將控制流轉移到用給定識別符號標記的語句。該語句必須與 goto 在同一個函式中。
第二個是 break 語句,其形式為
break ;
在迭代語句和 switch 語句中使用,將控制流傳遞到 while、do-while、for 或 switch 後面的語句。
第三個是 continue 語句,其形式為
continue ;
在迭代語句的子語句中使用,將控制流傳遞到子語句結束之前的那個位置。在 for 語句中,迭代表達式 (e3 上面) 將在控制表示式 (e2 上面) 計算之前執行。
第四種類型的跳轉語句是 return 語句,其形式為
return 表示式opt ;
此語句從函式返回。如果函式返回型別是 void,則該函式可能不會返回值;否則,表示式代表要返回的值。