switch判断
有时候,我们需要对一个变量进行多次判断,比如,输入一个阿拉伯数字,然后输出今天是星期几,那我们该怎么办?
int day = 7;
if (day == 1) {
cout <<"星期一";
}
if (day == 2) {
cout << "星期二";
}
if (day == 3) {
cout << "星期三";
}
if (day == 4) {
cout << "星期四";
}
if (day == 5) {
cout << "星期五";
}
if (day == 6) {
cout << "星期六";
}
if (day == 7) {
cout << "星期天";
}
是不是觉得代码特别冗余?switch就很好的解决了这类问题
switch的语法
switch语句根据values的值来判断变量是否相等:
switch (条件变量) {
case value1:
//满足value1需要执行的代码
break;
case value2:
//满足value2需要执行的代码
break;
...
case valueN:
//满足valueN需要执行的代码
break;
}
switch语句会从上至下判断条件变量的值是否跟value相等,相等,则执行相关的代码。
switch可以包含任意数量的case(条件分支)。
switch实例
回到刚才敲钟的问题上,如果我们不使用if语句,而是使用switch实现要怎么写?
int time = 12;
switch (time) {
case 0:
cout << "bell";
break;
case 12:
cout << "bellbellbell";
break;
}
break语句
break语句的作用是终止switch语句。
其实,switch语句在寻找到相应case并执行以后,并不会停止,而是会继续向下执行,直到所有case被遍历,所以,我们执行完相应的case以后,可以使用break语句,终止switch语句继续向下执行。
同样的,我们也可以利用break语句控制多个case执行相同的代码:
int month = 7;
switch (month) {
case 1:
case 2:
case 3:
cout << "春季" << endl;
break;
case 4:
case 5:
case 6:
cout << "夏季" << endl;
break;
case 7:
case 8:
case 9:
cout << "秋季" << endl;
break;
case 10:
case 11:
case 12:
cout << "冬季" << endl;
break;
default:
cout <<"不存在该月份" << endl;
}
当月份为7月份,case分支并不会在7月份停止,而是继续往下执行,直到在case9的时候遇到了break,所以在使用switch的时候需要谨慎。
default语句
default语句其实类似于else语句--当所有case都不被满足的时候执行。
用户进行输入的,那用户的行为是不可测的,可能出现意料之外的情况,所以我们就需要default语句对这种情况进行处理。
因为default一般在case的最末尾,所以default语句可以不使用break语句进行退出。
文章评论