Java switch case语句(十一)

Switch case语句

if-else语句可以用来描述一个“二岔路口”,我们只能选择其中一条路来继续走,然而生活中经常会碰到“多岔路口”的情况。switch语句提供了 if 语句的一个变通形式,可以从多个语句块中选择其中的一个执行。

例如:根据考试的名次,给予前 4 名不同的奖品。第一名,奖励一台笔记本;第二名,奖励一个Ipad;第三名,奖励一个移动电源;最后一名奖励一个U盘。

语法格式:

switch(表达式) {

  case 值1:

    语句块1;

    break;

  case 值2:

    语句块2;

    break;

    

  case 值n:

    语句块n;

    break;

  default:

    语句块n+1;

  break;

}

其中,switch、case、default、break都是Java的关键字。

-  switch表示“开关”,这个开关就是switch关键字后面小括号里表达式的值,小括号里要放一个整型变量或字符型变量。表达式必须为byte,short,int,char类型。

-  case后面的值可以是常量数值,如:1、2;也可以是一个常量表达式,如:2+2;但不能是变量或带有变量的表达式,如:a * 2。

-  case匹配后,执行匹配块里的程序代码,如果没有遇见break会继续执行下一个的case块的内容,直到遇到break语句或者switch语句块结束。

-  default块可以出现在任意位置,但通常放在末尾,也可以省略不写。

-  如果在 case 分支语句的末尾没有 break 语句,有可能触发多个 case 分支。那么就会接着执行下一个 case 分支语句。这种情况相当危险,常常会引发错误。

  因此,在编译代码时可以考虑加上 -Xlint:fallthrough 选项:javac -Xlint:fallthrough Test.java

  这样,如果某个分支最后缺少一个 break 语句,编译器就会给出一个警告消息。

注意:重复的 case 值是不允许的。

 

运行流程如图:

 当switch后表达式的值和case语句后的值相同时,从该位置开始向下执行,直到遇到break语句或者switch语句块结束;

如果没有匹配的case语句则执行default块的代码;

当然,default语句是可选的。如果没有相匹配的case语句,也没有default语句,则什么也不执行。

 

例如:

运行结果:

 case匹配后,执行匹配块里的程序代码,如果没有遇见break会继续执行下一个case块的内容,直到遇到break语句或者switch语句块结束。如:

 运行结果:

可以把功能相同的case语句合并起来。如:

运行结果:

 运行结果:

 

嵌套Switch语句

可以将一个switch语句作为一个外部switch语句的语句序列的一部分,这称为嵌套switch语句。因为一个switch语句定义了自己的块,外部switch语句和内部switch语句的case常量不会产生冲突。例如:

运行结果:

posted @ 2020-03-13 10:43  梦清欢  阅读(772)  评论(0编辑  收藏  举报