如果一个程序需要多条相似的条件判断,尤其是当布尔表达式简单并且形式相同(“变量+操作符+数值”的形式),只是判断的值不同时,可以使用if语句来进行多条判断,但是此时代码会非常臃肿,后期维护时要分别对各个条件进行测试。例如下面的代码。
动手写5.1.12
Java中可以使用switch语句来统一待判断变量和判断值,这样不仅代码整洁,也有利于提高各个条件和执行语句的可读性,便于维护。switch语句定义格式如下:
switch语句是一种多分支并行语句,它允许多个分支语句并行存在,并用关键字case标识。执行时,switch语句首先计算参数的值,如果和某一个分支语句标识的值相同,则执行该分支语句中的代码,直到关键字break为止;如果该分支语句中没有break关键字,则会继续判断后面的case分支语句,直到遇到break为止。switch语句同时提供了默认执行的机制,当没有一个分支语句的值与switch入参的值相同时,则会执行关键字default分支中的语句。
switch语句中待判断的变量必须为int、short、char或字符串String(long、float、double和其他类都不可以,String类型的支持是在JDK 1.7之后加入的),case中的判断值必须为常量,并且case互相之间定义的常量值不能重复,否则编译会报错。
动手写5.1.13
上面示例中,第二个switch语句中case“零壹快学”冒号后面没有执行语句和break跳转关键字,表示当判断变量等于这个case中的常量时,会执行该case后面的语句,当前示例中则会执行default语句。其运行结果为:
图5.1.9 switch条件语句示例
上面示例中,每个case代码块中都以一个break关键字结尾,代码执行到该处时,会直接跳转出switch条件语句(也可称中断条件语句)。break关键字可以被省略,此时后面定义的case语句仍然会按顺序执行,直到遇到break为止。default代码块因为是最后执行的,所以break语句是直接被省略的。
动手写5.1.14(www.xing528.com)
上面示例中,case语句中没有添加break中断语句,后面的default语句仍然会被执行,运行结果为:
图5.1.10 case语句中没有break
提示
Java中有一种特殊格式enum,为枚举类,可以定义一系列格式特定枚举值。enum比较特殊,可以和switch语句一起使用,这与其他类有很大的区别,后面第10章Java常用类将会对枚举类进行详细介绍。
动手写5.1.15
其运行结果为:
图5.1.11 switch语句和枚举类使用
switch语句在实际编程中并不常用,大部分场景都是使用for和while循环语句。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。