C語言 - 第十章 | Operation - 判斷式
什麼是判斷式?
在程式內為了運用各式各樣的狀況,判斷式這樣東西的存在是非常重要的。為了應付這種狀況,C語言理所當然地也提供了很多條件判斷式。
1 | 如果生病,就請假在家休息,否則就去上班。 |
if條件判斷
最為基礎的則是if條件判斷
1 | if(條件){ |
使用上方例子撰寫
1 | if(生病){ |
有時候if裡面的else是非必要的
1 | if(生病){ |
假設今天輸入成績,成績>=60就顯示”及格”,<60則顯示”當掉”。
1 |
|

巢狀if
當我們需要去對某個條件做多重確認的時候,其實可以在一層if內在寫上另一層的if
1 | if(生病){ |
取址運算子
「&」是一個相當特殊的運算子,它的功能是「取得一個變數的地址」。
在scanf()中,除了要提供要輸入的型態,同時也要指定他要存到哪裡去,但是只指定變數是不夠的,scanf()需要明確知道要寫到「哪裡去」, 因此我們需要加上取址運算子「&」,讓scanf()直接將輸入的東西寫到指定位置上。
關於記憶體控制及相關概念會在之後再詳細講解,現在大家只要知道使用scanf()時要加上&即可。
if elseif else條件式
C語言裡面,除了基本的if else以外其實還有更多的用法。
進行條件檢查時會依序從上開始檢查,如果所有條件都不符合才會執行至else內部
另外在中間部分的else if的數量其實是可以隨著程式的要求進而去做改變 也就是說可以有零到多個的else if在原先的if else條件判斷式中間。
1 | if(條件1){ |
switch條件判斷
switch是C語言提供的另一種條件判斷方式,本身只能比較數值或字元 但是使用適當的話,它可比if判斷式來得有效率。
1 | switch (變數名稱或運算式) { |
程式再執行時會先看switch的括號,當中置放要取出數值的變數,取出數值之後,會與case設定的數字或字元比對,符合則執行該case以下的陳述句直到遇到break為止,才會離開switch,若case內都沒有相符的則會執行default內的內容,但是default本身並不一定要存在,這部分跟if else中,其實可以不要寫else是一樣的。
1 | // if else 寫法 |
註:
if跟switch之間並不是具有那麼強烈的優異性,只是遇到複合條件時,switch就幫不上忙了,你無法在switch中組合複雜的條件陳述。這時後使用if就會是比較好的方式,理所當然的,if與switch兩者也可以搭配著靈活使用。
註:以上參考了
hackersir gitbooks
