在上一期的文章中,我们介绍了最常见的流程控制语句——if else语句,本期文章给大家介绍另一种常见的选择结构——switch case语句。
在此之前,我们先来看一个例子:还是小明考试的例子,那么这次是这样的:
如果小明考了第一名,那么将会奖励一个MAC笔记本电脑;
如果小明考了第二名,那么将会奖励一部iPhone13的手机;
如果小明考了第三名,那么将会奖励一辆山地自行车;
否则没有任何奖励,需要报补习班。
那么对于这个问题来说,if语句完全是可以实现的:
Scanner scanner=new Scanner(System.in);
System.out.println("请输入小明的考试名次是:");
int rank=scanner.nextInt();
if (rank==1){
System.out.println("考的很棒,给小明奖励一台MAC笔记本");
}else if (rank==2){
System.out.println("考的不错,给小明奖励一部iphone手机");
}else if(rank==3){
System.out.println("考的尚可,给小明奖励一辆山地自行车");
}else{
System.out.println("考的不好,需要报补习班!");
}
大家可以比较一下,本期的例子和上一期的例子有什么区别?相信大家都已经看出来了,上一期咱们使用多重if结构,是因为上一期进行的是区间的判断,而这一期进行的是等值判断。而对于等值判断,Java提供了一种更简洁方便的选择结构,即这篇文章介绍的——switch case结构。
如果是使用swith case结构,上述代码应该如何去写呢?
Scanner scanner=new Scanner(System.in);
System.out.println("请输入小明的考试名次是:");
int rank=scanner.nextInt();
switch (rank ){
case 1:
System.out.println("考的很棒,给小明奖励一台MAC笔记本");
break;
case 2:
System.out.println("考的不错,给小明奖励一部iphone手机");
break;
case 3:
System.out.println("考的尚可,给小明奖励一辆山地自行车");
break;
default:
System.out.println("考的不好,需要报补习班!");
}
简单说一下switch case的各个参数情况:
switch:表示开关,JDK1.7后,switch后面的括号中的数据可以是:int,short,byte,enum以及String 类型的表达式。
case:表示情况或者情形,case后可以跟的值与switch括号的数据类型相同,即:int,short,byte,enum以及String 类型的表达式,case块可以有多个,但是case后接的值必须各不相同。
default:表示默认,类似于if else 结构中最后的else,即其他情况都不满足的情况下,则执行default块。与case一样,default后面也需要接冒号。default通常放在最后,顺序可以随意调动,你非要杠一下,能不能把default调动到第一个位,那也是可以的,不会影响程序结果。另外,default也是可以省略的。
break:表示停止,即跳出当前结构。其实说到break,很多小伙伴肯定会想到continue,两者都是停止当前程序,有何区别?咱们后续也会提到。
值得注意的是:如果省略break,将会出现一些不必要的麻烦:
大家可以看到,如果删去break的话,将会无条件执行地执行下面的case语句,直到遇到break语句为止,这一点大家一定要注意,切记切记不能漏掉break。
最后更文不易,希望大家可以多多点赞评论分享,当然如果可以留下一个关注自然是更好的啦~您的支持就是我更文最大的动力,我们下期再见!