细节1.表达式数据类型,要与case后的类型一致,或者是可以自动转成可以相互比较的类型,比如驶入的是字符,而常量是int ;
细节2:switch(表达式)中表达式的返回值必须是:byte ,short,、int、char、enum(枚举)、String
细节3:case中的值必须是常量或者是常量表达式,而不能是变量
细节4:default子句是可选的,当没有匹配的case时,执行default
细节5:在switch语句中,break语句用来在执行完case语句跳出switch语句块,如果没有break,程序会顺序执行到switch结尾,除非遇到switch
案列2:对学生成绩大于60分,输出”合格”,低于60分的,输出“不合格”,注:(输入的成绩不能大于100)
1 import java.util.Scanner; 2 public class demo6{ 3 public static void main(String[]args){ 4 Scanner myscanner = new Scanner(System.in); 5 System.out.println("请输入相应的数字"); 6 double score = myscanner.nextDouble(); 7 if (score >= 0 && score<=100) { 8 9 switch((int)(score/60)){ //把分数除以60,然后强转换成int类型 10 case 0: 11 System.out.println("很遗憾,你的考试未通过"); 12 break; 13 case 1: 14 System.out.println("恭喜您,考试通过"); 15 break; 16 default: 17 System.out.println("你输入的数据有误!"); 18 } 19 }else { 20 System.out.println("您输入的信息有误"); 21 } 22 } 23 }
案列2:根据指定月份,打印该月份所属的季节:3.4.5是春季;6.7.8是夏季;9.10.11是秋季;12.1.2是冬季(提示使用穿透)
1 import java.util.Scanner; 2 public class demo6{ 3 public static void main(String[]args){ 4 Scanner myscanner = new Scanner(System.in); 5 System.out.println("请输入相应的月份"); 6 int month = myscanner.nextInt(); 7 if (month >= 1&& month<=12) { 8 switch(month){ 9 case 3: 10 case 4: 11 case 5: 12 System.out.println("该月份属于春季"); 13 break; 14 case 6: 15 case 7: 16 case 8: 17 System.out.println("该月份属于夏季"); 18 break; 19 case 9: 20 case 10: 21 case 11: 22 System.out.println("该月份属于秋季"); 23 break; 24 case 12: 25 case 1: 26 case 2: 27 System.out.println("该月份属于冬季"); 28 break; 29 default: 30 System.out.println("你输入的数据有误!"); 31 } 32 }else { 33 System.out.println("您输入的信息有误"); 34 } 35 } 36 }