有时候,代码中须要实现这样一个功能:当一个条件为真时作一件事,为假时作另外一件事。这就引出了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 。