1. 程式人生 > >C++的if/else語句、switch/case語句

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  。