我们已经了解if……else……可以用来描述一个“二岔路口”,计算机只能选择其中一条路继续走下去。然而有时候会遇到多岔路口的情况,用if……Else……语句来描述这种多岔路口会显得比较麻烦,而且容易把思路搅浑。比如我们在第十篇中,计算简单数学表达式的程序里就是用if……else……语句来描述的四岔路口。整个程序代码显得较长。
如果我们把这些岔路看作电路,那么用if…else…这种“普通开关”,来选择某一条支路,就需要设计一套很复杂的选路器,最简单的选路方法就是画一个流程图。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yM1MzY5IzM3EWYhNjMlRjMmNDOjVWYjZWNyYDN0QGO48CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
在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;
}
上面代码运行结果和我们第十篇中运行结果一样。我们发现使用了switch语句以后,代码的平均缩进有所减少,更简洁易懂,使用switch语句来描述多分支情况是非常适合的。
本篇完!喜欢这篇文章的朋友可以收藏与转发,欢迎大家在下方评论留言。下一篇《循环语句详解》