java基础-流程控制-分支结构(switch-case)

java中的流程控制

1.程序必须在执行过程中控制它的世界,并作出选择。在java中,需要使用执行控制语句来作出选择。

2.java使用了C的所有流程控制语句,它们包括:分支结构语句(if-else,switch-case),循环结构语句(while,do-while,for,foreach,)。并且,在这些语句中还涉及到许多关键字,包括:break,continue,return等等。

3.goto关键字是java中的保留字,java中并不会使用goto关键字,但是仍然可以进行类似goto那样的跳转(通过使用标签和break,continue等关键字),但比起典型的goto,有了很多限制。
 

switch-case分支结构语句

switch有时被规划为一种选择语句,证据整数表达式的值,switch可以从一系类代码中选出一段去执行。

格式:

switch(integral-selector){

      case integral-value1:statement;break;

      case integral-value2:statement;break;

      case integral-value3:statement;break;

      case integral-value4:statement;break;

      case integral-value5:statement;break;

      //...

      default:statement;

}

integral-selector(整数选择因子)必须是int、short、char、byte和enum类型(JDK 1.7 之后,类型也可以是String了)是一个能产生整数值的表达式或String类型的变量,switch能将这个表达式的结果或变量与每个integral-value相比较,若发现相符的,就执行对应的语句(单一或多条),若没有发现相符的,就执行default(默认)语句。

***每个case后面均以一个break结尾,这样可以使执行流程跳转至switch主体的末尾,这是构建switch语句的一种传统方式。但break是可选的,若省略break,会继续执行后面的case语句,直到遇到一个break为止。当所有case均没有break的时候,就会继续往下匹配,匹配不成功则返回默认的case,即default中的内容。

default语句可以存在于任何case之间,也可以在开头,但是default并没有break,也可以加上,但是没有任何实际用处。

 

以下是对其测试内容:

1.integral-selector若未匹配到任何integral-value,则执行默认的case,即只执行default中的内容,无论每个case中是否有写break,无论default case写在末尾还是开头;

输出:

2.integral-selector若匹配成功一个integral-value,若匹配成功的case没有写break时,从匹配成功的case开始,按顺序往下输出每一个case中的内容,直到其下面的任何一个case中有写入break时为止。 若其下面case中没有任何case写入了break,那就输出完。匹配成功的case上面的case有无写入break不影响结果。示例:

输出:

,若case4有写入break,则输出位2,3,4,验证:

输出为:

,若匹配成功的case有写入break,则只输出当前case中的内容,即只输出2,验证:

输出为:

验证integral-selector为字符串时的匹配,示例:

输出:

 

总结:

switch case执行时,一定会先进行匹配,匹配成功返回当前case的值,再根据是否有break,判断是否继续输出,或是跳出判断。

还需注意的是case后面只能是常量,可以是运算表达式,但一定要符合正确的类型。不能是变量,即便变量在之前进行了赋值,JVM依然会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值