我们上节学习了if else if,用以来处理多条件判断,那么我们再用它完成一个例子,用以模拟超市买商品报价格。
比如用户输入要买的商品的名称,系统直接提示价格:
在这个例子中,程序利用用户输入的内容和各个if分支进行判断,进而得到相应的价格。
不过我们发现,在编写的过程中,代码内出现了不少重复的内容,于是我们优化代码:
在新优化的代码中,我们将重复的文案去掉了,使我们的代码更简洁。
但是细心的小伙伴们会发现,代码优化了之后,苹果、火腿的价格相同;台灯、电熨斗的价格相同;以往的编程过程中,我们可以利用if else if中最后一个else用来表达以上条件都不成立的情况,来涵盖一系列的判断条件,从而得到一个判断结果,但是在这个例子中,出现了有几个判断后执行的内容相同的情况。虽然我们也用if else if将需求解决了,但是还是觉得有些不满意。
这个时候我们就需要学习一个新的流程控制语句switch语句。
常用语法1:
switch(需要检测的值){
case 值1:
需要检测的值等于值1时执行的内容
break;
case 值2:
需要检测的值等于值2时执行的内容
break;
……
default:(可选:可有可无)
以上条件都不成立时候执行的内容
break;
}
常用语法2:
switch(需要检测的值){
case 值1:
case 值2:
需要检测的值等于值1或者等于2时执行的内容
break;
case 值3:
需要检测的值等于值2时执行的内容
break;
……
default:(可选:可有可无)
以上条件都不成立时候执行的内容
break;
}
我们先解释常用语法1,在常用语法1中switch后面的括号中是要进行检测的内容,下面的每一个case对应的是检测内容可能的值,如果当前检测的内容等于下面某个case中对应的值,那么就执行对应case内的动作,并且执行完毕后执行break结束switch语句,但是如果被检测的内容都匹配不上列出的case的话,就执行default中的内容,不过这里的default是个可选选项,意思是可有可无,只需要在switch中需要处理超出case中列举内容的情况下才会使用。
那么我们用常用语法1改造一下我们的代码:
此时我们用新的代码,重构了之前的if else if结构,并且看起来代码更清晰了,不过这也没解决不同判断统一执行动作的问题呀?不要着急我们继续向下看。
常用语法2和常用语法1的区别是,1中每一个case都有对应的动作,但是2中出现几个case公用一个动作的情况,那么也就是说常用语法2中要表达的意思是,当需要检测的内容出现某几个对应case值的时候,执行相同的动作。那么我们修改代码:
那么这样我们就用我们的switch语句的特性解决了我们的需求!
不过这时候我们要总结,我们的if else if 和 switch都可以处理多判断条件的要求,但是它们的区别是if else if 可以处理多范围判断和多固定值判断,switch只能处理多固定值判断,所以当处理多范围判断和比较少的固定值判断的时候我们就可以使用if else if,但是处理比较多的固定值判断的时候就比较适合用switch喽!
你学会了吗!
领取专属 10元无门槛券
私享最新 技术干货