在我们的对流程控制语句练习例子中有个经典例子,用户输入学生的成绩,然后程序判断:
如果成绩大于0小于60,提示不及格;
如果成绩大于等于60小于70,提示及格;
如果成绩大于等于70小于80,提示良好;
如果成绩大于等于80小于100,提示优秀;
如果成绩小于0或者成绩大于100,提示输入错误。
我们本节内容同时用if else if 和 switch来完成这个练习。
首先我们用通常的思路来解决这个问题:
这中解决方式是我们通常的做法,也比较简单。那么如何用switch来解决这个问题呢?
我们翻阅switch的基础语法:
switch(需要检测的值){
case 值1:
case 值2:
需要检测的值等于值1或者等于2时执行的内容
break;
case 值3:
需要检测的值等于值2时执行的内容
break;
……
default:(可选:可有可无)
以上条件都不成立时候执行的内容
break;
}
基础语法中switch只需要一个需要判断的可以确定的值,然后和switch中可以匹配的case进行比较,但是我们的命题中学生成绩是个范围,并不是固定的值呀?
其实我们上节内容中,用以解决多判断相同运行动作的方式是,将现实生活中的需求转化成代码特性的思维方式。
那么我们就需要思考,有那些可以利用的代码特性,和如何的进行转化。
这里学生成绩是个范围,那我们就要想怎么将范围变成固定的值,不知道大家是否记得我们讲算数运算符和数据类型的时候说过一个例子:
在这个例子中,实际状况3/2=1.5,可是在这里却是1。出现这种情况的原因是当运算符左右两边的操作数都是int的时候,系统会默认得到的结果的数据类型也是int,即使最终得到的结果是一个小数,系统也会只获得小数的整数部分。
哦……这样说来,我们可以将这种代码的特性运用在我们的代码中:
在这里,直接将成绩除以10,然后得到的就是一个整数,这个整数就正好是一个取值范围,比如我们任意输入80到100之间的一个数,比如91,那么直接得到的就是9,这样再利用siwtch的特性,可以让多个不同的判断值执行相同的动作,就得到了“优秀”喽!
我们的编程过程就是一个将现实生活中的事物转化成程序的一个过程,也就是编程思维!
对于编程思维,屏幕前的你是怎么看的,可以下方评论区留言,一起探讨一下!
领取专属 10元无门槛券
私享最新 技术干货