【发布时间】:2015-07-19 03:46:50
【问题描述】:
这是我的代码:
switch(age) {
case 10:
System.out.println("You are too young to drive.");
break;
case 20:
System.out.println("You can drive!");
break;
default:
System.out.println("Error");
}
如果年龄是 15 岁会怎样?好吧,它给了我一个错误。所以我想知道是否可以在案例中包含一个条件。例如,
case (age>=10 && age<=20):
System.out.println("You're still too young to drive...");
break;
我可以使用 if 语句,但我想知道这是否可以通过 switch 实现。
【问题讨论】:
-
可以在
case块中使用任何东西,但更合适的是使用case 10: to case 19:并将所有空白不中断,除了最后一个,声明System.out.println("You're still too young to drive...");和break;终止,或者您可以简单地在switch块内提供default:标签,您可以在其中指定所需的消息:-) -
请注意,案例的结果是布尔值,所以除非年龄也是布尔值,否则这甚至没有意义。 Java 从每个案例创建一个常量跳转表,然后将开关与每个值进行比较,直到第一次匹配然后跳转到那里。这就是为什么 Java 在 case 表达式中需要 const 的原因。基本上可以在不执行(编译时)的情况下确定案例值吗?如果不能,请不要在案例中使用它。
标签: java