上一章我們講了C語言分支結構中的if...else,那麼這一章我們來講一下分支中的另外一種結構switch。
一般來說在C語言分支結構中if...else結構可以搞定幾乎所有的判斷語句,但有時候用if...else結構會比較繁瑣,而用switch就會簡潔方便很多。比如我們輸入一個字符
(就輸入a和b吧),然後相應的輸出一個以該字符開頭的動物名稱。
那如果用if...else怎麼寫呢?
While scanf ch
If ch=='a'
Printf argali(盤羊)
continue;//跳過這次循環
If ch=='b'
Printf babirusa(鹿豚)
那麼if雖然也可以處理,但是其實在C語言中還有一種比較簡潔的結構,switch來解決這個程序會更加具有可讀性。
通過這個列子,我們來看一下switch的結構:
switch(integer expression)--------→這裡必須是int型常量或int型常量表達式
{
Case constant1:-------------------------->case标簽不能是變量
Statements------------------→可選
break;-----------------------→可選
Case constant2:
Statements--------------------→可選
break;------------------------→可選
default:----------------------------→可選,default标簽表示如果上面的标簽都沒有匹配那麼執行這個标簽的代碼
Statements---------------------→可選
break;--------------------→可選
}
那麼switch是怎麼執行的呢:
在switch中case标簽中的break是可以不寫的,那麼不寫會造成什麼後果呢,如果沒有break那麼程序就會順序執行下去,直到碰到break或者到switch結束。
那麼我們什麼時候用if...else什麼時候用switch呢,其實有時候并沒有什麼選擇,因為switch的條件太嚴格必須是int型的常量或常量表達式。所以一般碰到不是int型的常量或者範圍條件基本都要用if...else。
在結尾呢,在介紹一個跳轉語句:goto。
goto平時基本不會用到,而且呢,最好也不要用。
直接用一個程序介紹一下吧:
好了這一章結束,C語言中的分支也講完了,不知道大家都學會了麼?
我們在來做一題吧:
要求輸入一周中的工作小時數,然後打印工資總額,稅金以及淨工資。作如下假設:
a、 基本工資等級=10.00美元/小時
b、 加班(超過40小時)=1.5倍的時間
c、 稅率 前300美元為15%
下一個150美元為20%
餘下的為25%
使用#define(預處理命令格式是"#define 常量的符号名 值"如#define WAGE 10)定義常量。
大家可以把程序寫在評論裡交流一下。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!