C++的if/else语句、switch/case语句

有时候,代码中须要实现这样一个功能:当一个条件为真时作一件事,为假时作另外一件事。这就引出了if/else语句。spa

if/else语句规则以下:.net

1. 标准格式:code

if(条件){
    //条件为真时作
}
else{
    //条件为假时作
}

2. 若是条件为假时要什么都不作,能够去掉else{}语句块。blog

3. 若是大括号内只有一条语句,大括号能够省略不写。get

4. else只和它上面最靠近它的、尚未配对的if语句配对。编译器


另外一些时候,咱们要根据一个变量的值来执行不一样的代码,这就引出了switch/case语句。博客

注意,这个变量只能是整型(长/短/无符号都可)、字符型或枚举型(enum),绝对不能是浮点型(float、double、long double)it

switch/case语句规则以下:编译

1. 标准格式(方括号内为可选项):class

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  。