Java小白入门到实战应用教程-switch case条件语句

自学Java9(保姆级教学)——流程控制语句-switch case

在上一期的文章中,我们介绍了最常见的流程控制语句——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。

最后更文不易,希望大家可以多多点赞评论分享,当然如果可以留下一个关注自然是更好的啦~您的支持就是我更文最大的动力,我们下期再见!

原文链接:,转发请注明来源!