/*
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);
}
}