| 為了應付程式所可能遇到的各種狀況,C提供了if 條件判斷陳述,它的語法如下: if
(條件式)
陳述句一; else 陳述句二; 這個語法的意思,白話來說,就是當條件式成立時(真),則執行陳述句一,要不然就執行陳述句二;如果條件式不成立時並不想作任何事,則else可以 省略。 在 if 後如果有兩個以上陳述句,稱之為「複合陳述句」(compound statement),此時您必須使用{ }將複合陳述句包括起來,例如: if
(條件式)
{
陳述句一; 陳述句二; } else { 陳述句三; 陳述句四; } 下面來寫個簡單的程式,判斷使用者的輸入是奇數還是偶數: #include <stdio.h> 執行結果:
這個程式很簡單,使用餘數運算來計算除以2後的餘數,偶數的餘數會是0,而奇數會是1,由此判斷輸入為奇數還是偶數;事實上如果您C瞭解非0值在判斷式中表示真,0值表示假的意義的話,這個程式也可以這麼寫: #include <stdio.h> 在 if 中您也可以再設定執行的條件,例如: if
(條件式一) {
陳述句一; if(條件式二) 陳述句二; 陳述句三; } 這只個簡單的例子,其中陳述句二要執行,必須同時滿足條件式一與二才行;再來看個例子: if
(條件式一) {
陳述句一; // 其它陳述句 } else if(條件式二) 陳述句二; 如果條件式一不滿足,就會執行else中的陳述,而您在這邊進行條件式二的測試,如果滿足就執行條件式二,由於C++是個自由格式語言,您可以適當的排列 這個程式,這會比較好懂一些: if
(條件式一) {
陳述句一; // 其它陳述句 } else if(條件式二) 陳述句二; 基於這個方式,您可以如下設定多個條件,且易讀易懂: if
(條件式一)
陳述一; else if(條件式二) 陳述句二; else if(條件式三) 陳述句三; else 陳述句四; 陳述句四會在條件式一、二、三都不成立時執行;下面這個程式是個簡單的例子,處理學生的成績等級問題: #include <stdio.h> 執行結果:
在這邊要注意的是,if與else是就最近的一組來配對,例如下面這個程式依縮排來看,您覺得有無問題存在? if
(條件式一)
if(條件式二) 陳述句一; else 陳述句二; 很多人都會以為條件式一的if會與else配對,但事實上是條件式二的if與else配對,加上括號的話就可以一目瞭然了: if
(條件式一) {
if(條件式二) 陳述句一; else 陳述句二; } 如果想避免這種錯誤,在程式中多使用括號是必要的,多寫一些總是比少寫一些來得保險一點。 |