switch语法
/* 1、关于switch语句: switch也属于选择语句,也是分支语句 switch语句的语法结构: switch(int或String类型的字面值或变量){ case int或String类型的字面值或变量: java语句; java语句; ... break; case int或String类型的字面值或变量: java语句; java语句; ... break; case int或String类型的字面值或变量: java语句; java语句; ... break; ... default: java语句; ... } 2、switch语句的执行原理: switch后面的小括号当中的 “数据”和case后面的“数据”进行一一匹配, 匹配成功的分支执行 3、匹配成功的分支执行, 分支当中最后有“break;”语句的话, 整个switch语句终止 4、匹配成功但是分支没有“break;”, 直接进入下一个分支执行(不进行匹配), 被称之为case穿透现象 5、所有分支都没有匹配成功,当有default的语句块, 会执行default分支当中的程序 6、switch后面和case后面只能是int或者String类型的数据 7、case可以合并: int i = 10; switch(i){ case 1; case 10; case 20; System.out.println("!"); } */ public class SwitchTest01 { public static void main(String[] args){ //解决编译报错 long a = 100L; switch((int)a){} /* 较完整的switch语句 */ //1 表示星期一 //2 表示星期二 //.... //7 表示星期天 java.util.Scanner s = new java.util.Scanner(System.in); System.out.print("请输入数字:"); int num = s.nextInt(); switch(num){ 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; default : System.out.println("输入非法数字"); } } }
/* 文字作为判断 */ public class SwitchTest02 { public static void main(String[] args){ java.util.Scanner s = new java.util.Scanner(System.in); System.out.print("输入星期几:"); String dayOfWeek = s.next(); switch(dayOfWeek){ case "星期一" : System.out.println(1); break; case "星期二" : System.out.println(2); break; default : System.out.println("输入错误"); } } }
/* 计算器 */ public class SwitchTest03 { public static void main(String[] args){ java.util.Scanner s = new java.util.Scanner(System.in); System.out.print("请输入第一个数字:"); int fir = s.nextInt(); System.out.print("请输入运算符:"); String y = s.next(); System.out.print("请输入第二个数字:"); int sec = s.nextInt(); int result = 0; switch(y){ case "+" : result = fir + sec; break; case "-" : result = fir - sec; break; case "*" : result = fir * sec; break; case "/" : result = fir / sec; break; default : System.out.println("该系统不支持"); } System.out.println("运算结果为:" + fir + y + sec + "=" + result); } }
/* 假设系统给定考生成绩,请判断考生的成绩等级: 1、有效范围:[0~100] 2、考试成绩可能带有小数 3、考试成绩和等级之间的对照方式: [90-100] A [80-90) B [70-80) C [60-70) D [0-60) E 4、以上采用switch语句完成 */ public class SwitchTest04 { public static void main(String[] args){ java.util.Scanner s = new java.util.Scanner(System.in); System.out.print("成绩是:"); int score = s.nextInt(); score /= 10; String level = "A"; switch(score){ case 9 : case 10 : level = "A"; break; case 8 : level = "B"; break; case 7 : level = "c"; break; case 6 : level = "D"; break; default : level = "E"; break; } System.out.println("成绩等级是:" + level); } }