在此之前,我们先来看一个例子:还是小明考试的例子,那么这次是这样的:
如果小明考了第一名,那么将会褒奖一个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。
末了更文不易,希望大家可以多多点赞评论分享,当然如果可以留下一个关注自然是更好的啦~您的支持便是我更文最大的动力,我们下期再见!