標籤:
在使用if語句中還應注意以下問題: 在三種形式的if語句中,在if關鍵字之後均為運算式。 該運算式通常是邏輯運算式或關聯運算式,但也可以是其它運算式,如賦值運算式等,甚至也可以是一個變數。例如:
if(a=5) 語句;
if(b) 語句;
都是允許的。只要運算式的值為非0,即為“真”。如在:
if(a=5)…;
中運算式的值永遠為非0,所以其後的語句總是要執行的,當然這種情況在程式中不一定會出現,但在文法上是合法的。
if語句的嵌套
當if語句中的執行語句又是if語句時,則構成了if 語句嵌套的情形。特別注意if和else的配對問題。
為了避免這種二義性,C語言規定,else 總是與它前面最近的if配對。
在使用switch語句時還應注意以下幾點:
- 在case後的各常量運算式的值不能相同,否則會出現錯誤。
- 在case後,允許有多個語句,可以不用{}括起來。
- 各case和default子句的先後順序可以變動,而不會影響程式執行結果。
- default子句可以省略不用。
C語言有四種迴圈:goto語句構成的迴圈、while迴圈、do-while迴圈和for迴圈。
四種迴圈的比較:
四種迴圈都可以用來處理同一個問題,一般可以互相代替。但一般不提倡用goto型迴圈,不但因為其蹩腳,我們也極力建議不要使用goto語句,盡量使用其他語句代替。
while和do-while迴圈,迴圈體中應包括使迴圈趨於結束的語句。
for語句功能最強,也最常用。
用while和do-while迴圈時,迴圈變數初始化的操作應在while和do-while語句之前完成,而for語句可以在運算式1中實現迴圈變數的初始化。
break和continue語句都可以用在迴圈中,用來跳出迴圈(結束迴圈);break語句還可以用在switch語句中,用來跳出switch語句。
break語句
break語句通常用在迴圈語句和開關語句中。當break用於開關語句switch中時,可使程式跳出switch而執行switch以後的語句;如果 沒有break語句,則將成為一個死迴圈而無法退出。break在switch 中的用法已在前面介紹開關語句時的例子中碰到,這裡不再舉例。
當break語句用於do-while、for、while迴圈語句中時,可使程式終止迴圈而執行迴圈後面的語句,通常break語句總是與if語句聯在一起,即滿足條件時便跳出迴圈。
注意:
- break語句對if-else的條件陳述式不起作用;
- 在多層迴圈中,一個break語句只向外跳一層。
continue 語句
continue語句的作用是跳過迴圈體中剩餘的語句而強行執行下一次迴圈。continue語句只用在for、while、do-while等迴圈體中,常與if條件陳述式一起使用,用來加速迴圈。
C語言流程式控制制