switch分支语句
switch语句也称为分支语句,其和if语句有点类似,都是用来判断值是否相等,但switch默认只支持byte、short、int、char这四种类型的比较,JDK8中也允许String类型的变量做对比。
语法:
switch (表达式) { //表达式可以为byte、short、int、char,JDK5加入枚举,JDK7加入Stringcase 值1: //分支入口语句体1;break;case 值2: //分支入口语句体2;break;...default:语句体n+1;break;
}//后续语句
格式说明:
执行流程:
基础案例:
从键盘录入mode值,其值为0 1 2 3中任意一个,然后输出相应字符串
package com.briup.chap03;import java.util.Scanner;public class Test023_SwitchBasic {//从键盘录入mode值,其值为0 1 2 3中任意一个,然后输出相应字符串public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("input a mode(0 1 2 3): ");int mode = sc.nextInt();switch(mode){case 0:System.out.println("默认模式开启");//注意讲解break用法:结束switch语句//break;case 1:System.out.println("1模式开启");break;case 2:System.out.println("2模式开启");break;case 3:System.out.println("3模式开启");break;default:System.out.println("无效录入");//break;}System.out.println("out of switch!");}
}
扩展案例:
从键盘录入一个年份和月份,然后输出该月份的天数
package com.briup.chap03;import java.util.Scanner;public class Test023_Extend {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请录入年份和月份: ");int year = sc.nextInt();int month = sc.nextInt();switch(month) {case 1:case 3:case 5:case 7:case 8:case 10:case 12:System.out.println("31天");break;case 4:case 6:case 9:case 11:System.out.println("30天");break;case 2://闰年判断if((year % 400 == 0) ||(year % 4 == 0 && year % 100 != 0)) {System.out.println("29天");}else {System.out.println("28天");}break;default:System.out.println("录入月份有误!");break;}System.out.println("out of switch!");}
}