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