分支结构
2、switch语句
因为if语句的级联式最多只会处理三种情况,如果出现多情况
1>可以继续使用if语句的级联式,但是可能代码的可读性就会变差。
2>采用switch语句来解决。
switch语法格式:
switch (存在多种情况的变量) { case 值1: 语句(一定要包含break) case 值2: 语句(一定要包含break) ... default: 语句(一定要包含break) }
1:变量的数据类型:byte short int char String Enum枚举不常用
2:default的作用:所有case情况如果都不匹配,走default
3:case中break的作用:跳出switch语句的标识符
4:如果没有break,代码会贯穿,直到遇到break,才会跳出switch语句
练习:A~D等级判定
System.out.println("请输入一个等级(A~D):"); Scanner scanner = new Scanner (System.in); char level = scanner.next().charAt(0); switch (level) { case 'A': System.out.println("优秀"); break; case 'B': System.out.println("良好"); break; case 'C': System.out.println("及格"); break; case 'D': System.out.println("不及格"); break; default: break; }
注:如果多个case执行的代码一致,可以多个case合起来一起写!!!
练习:输入一个年份和月份,判断这一年是平年还是闰年,并判断这一月有多少天
System.out.println("请输入一个年份和一个月份,中间用空格隔开:"); Scanner scanner = new Scanner (System.in); int year = scanner.nextInt(); if (year % 400 == 0 || (year % 4 ==0 && year % 100 !=0)) { System.out.println(year + "是闰年"); } else { System.out.println(year + "是平年"); } int month = scanner.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: break; } scanner.close();