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  。

猜你喜欢

转载自blog.csdn.net/weixin_41461277/article/details/84959086