题目:根据用户对于电影的评分,输出该评分对应的等级
类似题目:跟据输入分数,判定该学生的成绩评级等
本次解题使用Switch语句进行判断
Switch语句的中心思想:执行多条件分支语句
分析:
根据提示,用户输入一个分数
获取并判断输入的这个分数值
如果分数等于 x (某值):输出语句A;退出判断;
如果分数等于 y (某值):输出语句B;退出判断;
如果分数等于 z (某值):输出语句C;退出判断;
否则:输出默认内容;推出判断
------ 思考一下 动手做一做 再往下翻翻看------
代码:
#include <iostream>
using namespace std;
int main(){
int k;
cout << "请输入对该电影的评分(0~10分)" << endl;
cin >> k ;
cout << "你给出的分数是:" << k << endl;
switch(k){
case 10:cout << "该电影优秀" << endl; break;
case 9:cout << "该电影优秀" << endl; break;
case 8:cout << "该电影还行" << endl; break;
case 7:cout << "该电影还行" << endl; break;
case 6:cout << "该电影一般" << endl; break;
case 5:cout << "该电影一般" << endl; break;
case 4:cout << "该电影一般" << endl; break;
case 3:cout << "看不下去" << endl; break;
case 2:cout << "看不下去" << endl; break;
case 1:cout << "退票吧" << endl; break;
case 0:cout << "退票吧" << endl; break;
default:cout << "请再看一下评分规则" << endl; break;
}
system("pause");
return 0;
}
运行结果:
聪明的你应该不难发现,其实有好几评分对应的输出语句是一致的,那能不能有一些简单一点的写法呢?
让我们试一下将代码改成这样:
#include <iostream>
using namespace std;
int main() {
int k;
cout << "请输入对该电影的评分(0~10分)" << endl;
cin >> k;
cout << "你给出的分数是:" << k << endl;
switch (k) {
case 10:
case 9:cout << "该电影优秀" << endl; break;
case 8:
case 7:cout << "该电影还行" << endl; break;
case 6:
case 5:
case 4:cout << "该电影一般" << endl; break;
case 3:
case 2:cout << "看不下去" << endl; break;
case 1:
case 0:cout << "退票吧" << endl; break;
default:cout << "请再看一下评分规则" << endl; break;
}
system("pause");
return 0;
}
运行结果:
所以,当我们发现相邻不同条件输出的语句是一样的时候,可以省略前几个输出语句,只留下最后一个输出语句(如果还不能理解,我们可以对比以上两种方法看一下代码的区别)。
注意事项:
1、在使用switch语句中,每一个输出语句后需要添加一个break,退出当前判断。不然整个程序会继续运行下去,不能达到一个数值对应一个输出结果。
2、switch(判断项):判断项中只能是整型或字符型,不可以是一个区间
提问环节:
switch语句是如何工作的?它有哪些限制?
switch语句是根据表达式不同的值选择执行不同语句控制流语句。它具有结构清晰、执行效率高的特点。
其工作原理如下:
1、执行switch语句后面的判断项表达式
2、将表达式的值与各个case标签中的值比较,匹配成功则输出对应语句;否则输出default标签后的语句
3、完成第二步后,继续执行后续代码至整个switch代码块结束,如果遇见break语句则结束运行