本帖最后由 张11。。。 于 2019-6-1 15:39 编辑
Java基础之选择语句--switch
switch语句格式: switch(表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
执行流程 o 首先计算出表达式的值 o 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。 o 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。 要求这个表达式最后必须能计算出一个准确的结果,并且这个结果的类型只能是 byte short intchar enum(枚举), 在JDK7以后增加了字符串类型。 break的作用是结束switch语句,跳出switch语句。
switch语句练习-春夏秋冬 o 需求:一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出。 o 演示效果 输入: 1、2、12 输出:冬季 输入: 3、4、5 输出:春季 输入: 6、7、8 输出:夏季 输入: 9、10、11 输出:秋季 输入:其它数字 输出:数字有误
public static void main(String[] args) { //定义月份变量,判断季节 Scanner sc = new Scanner(System.in); System.out.println("请输入月份:"); int month = sc.nextInt();//6
//switch语句实现选择 switch(month) { case 1: System.out.println("冬季"); break; case 2: System.out.println("冬季"); break; case 3: System.out.println("春季"); break; case 4: System.out.println("春季"); break; case 5: System.out.println("春季"); break; case 6: System.out.println("夏季"); break; case 7: System.out.println("夏季"); break; case 8: System.out.println("夏季"); break; case 9: System.out.println("秋季"); break; case 10: System.out.println("秋季"); break; case 11: System.out.println("秋季"); break; case 12: System.out.println("冬季"); break; default: System.out.println("你输入的月份数字有误"); break; } } case的穿透性
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。
public static void main(String[] args) {
//定义月份变量,判断季节
Scanner sc = new Scanner(System.in);
System.out.println("请输入月份:");
int month = sc.nextInt();//3
//switch语句实现选择
switch(month) {
case 12:
case 1:
case 2:
System.out.println("冬季");
break;
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
default:
System.out.println("你输入的月份数字有误");
break;
}
}
上述程序中,执行case3后,由于没有break语句,程序会一直向后走,不会在判断case,直接向下运行,直到遇到break关键字,才会结束switch语句。
|