switch(表达式) {
case 值1:
语句块1;
break;
case 值2:
语句块2;
break;
…
case 值n:
语句块n;
break;
default:
语句块n+1;
break;
}
其中,switch、case、default、break 都是 Java 的关键字。
String input = ...;
switch (input.toLowerCase()) { // toLowerCase用于将大写字符转换为小写
case "yes":
...
break;
}
当在 switch 语句中使用枚举常量时,不必在每个标签中指明枚举名,可以由 switch 的表达式值确定。例如:
Size sz = ...;
switch (sz) {
case SMALL: // no need to use Size.SMALL
...
break;
...
}
注意:重复的 case 值是不允许的。javac -Xlint:fallthrough Test.java
这样一来,如果某个分支最后缺少一个 break 语句,编译器就会给出一个警告消息。
public static void main(String[] args) {
System.out.println("请输入座位号码:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
switch (num) {
case 8:
System.out.println("恭喜你,获得了三等奖!");
break;
case 88:
System.out.println("恭喜你,获得了二等奖!");
break;
case 888:
System.out.println("恭喜你,获得了一等奖!");
break;
default:
System.out.println("谢谢参与!");
break;
}
}
当用户输入的号码为 888 时,获取的 num 值为 888,则与第三个 case 后的值匹配,执行它后面的语句,输出“恭喜你,获得了一等奖!”,然后执行 break 语句,跳出整个 switch 结构。如果输入的号码与 case 中的值都不匹配,则执行 default 后的语句。请输入座位号码: 888 恭喜你,获得了一等奖!
请输入座位号码: 88 恭喜你,获得了二等奖!
请输入座位号码: 66 谢谢参与!
public static void main(String[] args) {
String weekDate = "";
Calendar calendar = Calendar.getInstance(); // 获取当前时间
int week = calendar.get(Calendar.DAY_OF_WEEK) - 1; // 获取星期的第几日
switch (week) {
case 0:
weekDate = "星期日";
break;
case 1:
weekDate = "星期一";
break;
case 2:
weekDate = "星期二";
break;
case 3:
weekDate = "星期三";
break;
case 4:
weekDate = "星期四";
break;
case 5:
weekDate = "星期五";
break;
case 6:
weekDate = "星期六";
break;
}
System.out.println("今天是 " + weekDate);
}
本程序首先获取当前的星期值,然后使用 switch 语句判断 week 的值:0 表示星期日,1 表示星期一,2 表示星期二……以此类推,6 表示星期六。只要 week 值与 case 值相符合,则程序将执行该 case 中的语句,并跳出 switch 语句,输出结果。今天是星期五
public static void main(String[] args) {
switch (count) {
case 1:
switch (target) {
case 0:
System.out.println("target is zero");
break;
case 1:
System.out.println("target is one");
break;
}
break;
case 2: // ...
}
}
本例中,内部 switch 语句中的case 1:语句与外部 switch 语句中的case 1:语句不冲突。变量 count 仅与外层的 case 语句相比较。如果变量 count 为 1,则变量 target 与内层的 case 语句相比较。
版权说明:Copyright © 广州松河信息科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州松河信息科技有限公司 版权所有