C++的if/else語句、switch/case語句
有時候,程式碼中需要實現這樣一個功能:當一個條件為真時做一件事,為假時做另一件事。這就引出了if/else語句。
if/else語句規則如下:
1. 標準格式:
if(條件){
//條件為真時做
}
else{
//條件為假時做
}
2. 如果條件為假時要什麼都不做,可以去掉else{}語句塊。
3. 如果大括號內只有一條語句,大括號可以省略不寫。
4. else只和它上面最靠近它的、還沒有配對的if語句配對。
另一些時候,我們要根據一個變數的值來執行不同的程式碼,這就引出了switch/case語句。
注意,這個變數只能是整型(長/短/無符號均可)、字元型或列舉型(enum),絕對不能是浮點型(float、double、long double)
switch/case語句規則如下:
1. 標準格式(方括號內為可選項):
switch(變數名){
case 值: 程式碼; [break;]
case 值: 程式碼; [break;]
...
[default: 程式碼;]
}
其中,如果變數的值和case後面的值都不符合,執行default後面的程式碼(default只能出現一次)。
2. 如果沒有break;語句,程式將不看條件地一路執行下去,直到碰到下一個break;或switch語句的右大括號。
3. default語句也可以放在中間甚至開頭,但是規則與規則2相同,沒有break;將一路執行下去。
4. 有時候也會把每個case和default後面的程式碼和break;用大括號括起來。
5. 如果一段程式碼想匹配多個值,可以這樣寫:case 值1: case 值2: case 值3: ... 程式碼; 。這並不是一條新規則,想一想為什麼。(提示:看規則2)
規則2很重要,以這個例子加深一下印象:(注意這只是一個程式碼段,直接放進編譯器裡是無法執行的)
int a=1; switch(a){ case 1: cout<<1<<endl; case 2: cout<<2<<endl; case 3: cout<<3<<endl; break; case 4: cout<<4<<endl; default: cout<<5<<endl; }
這段程式碼會輸出什麼呢?
A. B. C. D.
1 1 1 1
2 2 2
3 3 3
4 4
5
選什麼呢?請你先做個決定,然後再往下翻,檢視答案。
答案:A。
原因:一開始進入了case 1;case 1和case 2都沒有break語句,所以繼續往下執行;到了case 3的末尾遇到了break語句,於是停止,跳出switch語句。
相信你們對if/else語句和switch/case語句有了一個基本的瞭解,本篇部落格到此結束。
歡迎轉載,但請在文章中附加上本文連結:https://blog.csdn.net/weixin_41461277/article/details/84959086 。