Java中,switch-case语句是一种多分支的控制流语句,它可以使程序根据不同的条件执行不同的代码块。下面介绍一些Java switch-case语句的示例,帮助您了解它的使用方法。
一、switch-case语句基本用法
switch语句的语法结构如下:
switch(expression){ case value1 : //当表达式的值等于value1时,执行这里的代码 break; case value2 : //当表达式的值等于value2时,执行这里的代码 break; case value3 : //当表达式的值等于value3时,执行这里的代码 break; //你可以有任意数量的case语句 default : //当所有case都不匹配时,执行这里的代码 }
在这个语法结构中,expression是要被测试的值,case是要比较的值,value1、value2和value3是case的值。default关键字是一个可选的关键字,用于当所有的case都不匹配时执行的代码块。
下面是一个简单的Java switch-case语句的示例:
public class Test { public static void main(String[] args) { int num = 2; switch(num+1) { case 1: System.out.println("Case1: Value is: "+num); break; case 2: System.out.println("Case2: Value is: "+num); break; case 3: System.out.println("Case3: Value is: "+num); break; case 4: System.out.println("Case4: Value is: "+num); break; default: System.out.println("Default: Value is: "+num); } } }
在这个示例中,我们声明了一个整型变量num,并将它的值设为2。然后我们使用switch语句测试num+1的值,并根据值的匹配情况执行不同的代码块。
二、switch-case语句展开用法
Java中的switch语句还可以采用展开的方式来写,以减少代码的量。如下:
public class Test { public static void main(String[] args) { int num = 2; switch(num) { case 0: case 1: case 2: case 3: System.out.println("Value is less than 4"); break; case 4: case 5: case 6: case 7: case 8: System.out.println("Value is between 4 and 8"); break; case 9: System.out.println("Value is 9"); break; default: System.out.println("Value is greater than 9"); } } }
在这个示例中,我们可以看到,使用switch-case语句展开的方式,可以同时测试多个case的值,并且执行同一个代码块。这样可以让代码变得更加简洁易懂。
三、switch-case语句加上break语句
在Java中,switch-case和for、while、do-while、if-else语句一样,也可以使用break、continue和return语句来控制程序的流程。
比如在一个循环中使用switch语句,我们可以使用break语句来跳出switch语句的循环,继续循环执行其他的语句。如下:
public class Test { public static void main(String[] args) { int num = 2; for(int i=0; i<10; i++){ switch(num+i) { case 0: case 1: case 2: case 3: System.out.println("Value is less than 4"); break; case 4: case 5: case 6: case 7: case 8: System.out.println("Value is between 4 and 8"); break; case 9: System.out.println("Value is 9"); break; default: System.out.println("Value is greater than 9"); break; } } } }
在这个示例中,我们在一个for循环中使用switch-case语句。同时,在每个case语句块的最后,我们加上了一个break语句,用来退出switch语句。如果忘记加上break语句,程序将会继续判断后续的case语句,并执行后续case语句的代码块。
四、switch-case语句的枚举用法
Java中的枚举是一种数据类型,可以让我们定义一些常量,而这些常量是不可变的。使用枚举和switch-case语句可以很好地处理很多问题。如下:
public enum Weekday { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } public class Test { public static void main(String[] args) { Weekday day = Weekday.MONDAY; switch (day) { case MONDAY: System.out.println("Today is Monday"); break; case TUESDAY: System.out.println("Today is Tuesday"); break; case WEDNESDAY: System.out.println("Today is Wednesday"); break; case THURSDAY: System.out.println("Today is Thursday"); break; case FRIDAY: System.out.println("Today is Friday"); break; case SATURDAY: System.out.println("Today is Saturday"); break; case SUNDAY: System.out.println("Today is Sunday"); break; } } }
在这个示例中,我们定义了一个名为Weekday的枚举类型,包含了一周的各个天。然后我们在switch-case语句中判断day变量的值,分别输出每一天的信息。
五、switch-case语句的使用限制
虽然Java的switch-case语句很方便,但是它的使用有一些限制:
- switch语句只能测试int、short、byte、char和枚举类型的值。不能测试boolean、long、float或double类型的值。
- case语句中的值必须是常量,不能是变量或表达式。
- 在同一个switch语句中,case值不能重复。重复的值会导致编译错误。
- switch语句必须包含一个default语句。如果没有,编译器会发出警告。
总之,Java的switch-case语句是一种很方便、实用的语句,可以用来控制程序的流程。在使用switch-case语句的过程中要注意使用限制,以免导致错误和bug的产生。