我们已经了解if……else……可以用来描述一个“二岔路口”,计算机只能选择其中一条路继续走下去。然而有时候会遇到多岔路口的情况,用if……Else……语句来描述这种多岔路口会显得比较麻烦,而且容易把思路搅浑。比如我们在第十篇中,计算简单数学表达式的程序里就是用if……else……语句来描述的四岔路口。整个程序代码显得较长。
如果我们把这些岔路看作电路,那么用if…else…这种“普通开关”,来选择某一条支路,就需要设计一套很复杂的选路器,最简单的选路方法就是画一个流程图。
![88d44625fcaec83f24e23aaa7329c353.png](https://i-blog.csdnimg.cn/blog_migrate/8a22da31d484d1bc526a342e0e3bd373.jpeg)
在C++中也有这样的开关,那就是switch语句,它能够很简捷的描述出多路岔口的情况,它的具体语法是:
switch(表达式)
{
case 常量表达式1:
{
语句块;
break;
}
case 常量表达式n:
{
语句块;
break
}
default:
{
语句块
}
}
在swicth语句中,我们记住4个保留字,分别是switch,case,defualt和break。switch是语句的特征标志,case表示当switch后的表达式满足某个case后的常量时,运行该case以后的语句块。defualt表示当表达式没有匹配的case时,默认的运行它之后的语句。break表示分岔已到尽头,退出switch语句。
下面我们来这一段代码,执行计算简单的数学表达式(根据第十篇中的代码修改,把if……else…语句换成switch语句)。
#include "iostream.h"
int main ()
{
float a,b;
char oper ;
cout <
cin >> a >>oper >>b;
switch (oper)
{
case '+':
{
cout << a << oper << b <break;
}
case '-':
{
cout << a << oper << b <break;
}
case '*':
{
cout << a << oper << b <break;
}
case '/':
{
if (b!=0) cout << a << oper << b <else cout << "被除数不能为0" <
}
default:
{
cout << "出错了" <
}
}
return 0;
}
![96ad01ffa246625c2bf4bd83c6db7bdc.png](https://i-blog.csdnimg.cn/blog_migrate/6ef64e4d622b55de33fedb1c8ff14e7f.jpeg)
上面代码运行结果和我们第十篇中运行结果一样。我们发现使用了switch语句以后,代码的平均缩进有所减少,更简洁易懂,使用switch语句来描述多分支情况是非常适合的。
本篇完!喜欢这篇文章的朋友可以收藏与转发,欢迎大家在下方评论留言。下一篇《循环语句详解》