⼩总结之switch 语句——范围划分
@
碰到的题⽬如下:
编程实现:为某个学⽣写评语,要求从键盘输⼊该学⽣的学号和百分制成绩,并将百分制成绩转换成4级制输出。百分之成绩与四级制等级的对应关系如下,输⼊和输出要求如下。
等级 分数段
A 100~90
B 89~80
C 79~60
D 60分以下
请输⼊该学⽣的学号和成绩:20170004 98
学⽣20170004成绩等级为:A
只知道对于switch语句⽽⾔,case后⾯需要添加的是⼀个常量表达式,⼀开始并不清楚如何按分数段对应case的不同情况,因此依然选择了使⽤if else语句来解决问题。
不过最后答案给出来还是深刻的感受了⼀把switch语句较if else语句的简单便捷。 #include<iostream>    using namespace std;    void main(void)    {    int num,score;    cout << "请输⼊该学⽣的学号和成绩:" << endl;    cin >> num >> score;    char level;    if (score >= 90 && score <= 100)level = 'A';    else if (score >= 80)level = 'B';    else if (score >= 60)level = 'C';    else level = 'D';    cout << "学⽣" << num << "成绩等级为:" << level << endl;    }
1
2
3
4
5
6
7
8910
11
12
13
14#include<iostream>using namespace std;void main(void){ int num; double grade; char x; cout << "请输⼊该学⽣的学号和成绩:"; cin >> num >> grade; switch ((int)grade / 10) { case 10: case 9:x = 'A'; break; case 8:x = 'B'; break; case 7: case 6:x = 'C'; break; default:x = 'D'; } cout << "学⽣" << num << "成绩等级为:" << x << endl;}
1
2
3
4
5
switch语句表示范围
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
精妙之处在于语句“switch ((int)grade / 10);”,通过强制类型转换符和除法的结合完美解决了此处分类的问题。以后要善于运⽤此⽅法解决问题。
相较⽽⾔,switch语句的逻辑结构更为清晰。并且在确定数据结构的过程中,⼀定要注意是要定义为int类型还是double类型。对于此处的成绩,现实⽣活中,是有诸如80.5形式的分数存在,所以此处定义为double类型更为合适。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。