if語句被稱為分支語句或選擇語句,因為它提供了一個交匯點,在此處程序需要選擇兩條分支中的一條前進。一般的形式如下
if(expression)
statement
如果expression為真,則執行statement,否則跳過。
if else語句的通用形式為:
if(expression)
statement1
else
statement2
如果expression為真,則執行statement1,否則執行statement2。
如果希望在if和else之間有多條語句,必須使用花括號創建一個代碼塊。
7.1.1 geichar()和putchar()
getchar()函數沒有參數,它返回來自輸入設備的下一個字符。ch=getchar()與scanf("%c",&ch)有相同的效果。
putchar()函數打印它的參數,putchar()與printf("%c",ch)有同樣的效果。
因為這些函數僅僅處理字符,所以它們比更通用的scanf()和printf()函數更快而且更簡潔。同樣它們不需要格式說明符,它們只對字符起作用。
7.1.2 else
規則是如果沒有花括號指明,else和它最接近的一個if相匹配。
!運算符的優先級很高。它高於乘法運算,和增量運算符的優先級相同,僅次於圓括號。&&運算符的優先級高於||,這二者的優先級都低於關系運算而高於賦值運算。
條件運算符是C的三元運算符的惟一的一個例子。
下面是條件表達表達式的一般形式:
expression1?expression2:expression3;
如果expression1為真,整個條件表達式的值和expression2相同,否則整個條件表達式的值和expression3相同。
7.4.1 continue語句
該語句可以用於三種循環形式。當運行到該句時,它將導致剩余的迭代部分被忽略,開始下一次迭代。
continue的另一個用處是作為占位符。例如
while(getchar()!='\n')
continue;
7.4.2 break語句
循環中的break語句導致程序終止包含它的循環,並進行程序的下一個階段。
如果break語句位於嵌套循環裡,它只影響包含它的最裡層的循環。
switch中可以對一個給定的語句使用多重case標簽。
程序控制按照expression的值跳轉到相應的case標簽處,然後程序流程繼續通過所有剩余的語句,直到再次由break語句重定向。
expression和case標簽必須都是整型值(包括類型char),並且標簽必須是常量或者完全由常量組成的表達式。
如果沒有與表達式值相匹配的case標簽,那麼控制定位到標簽為default的語句。
goto語句包括兩個部分:goto和一個標簽名稱。
格式:
goto label;
.
.
label:statement