1、switch语法
switch(表达式){
case 常量值1:结果1
case 常量值2:结果2
}
在switch case 中表达式可以byte、short、int、char,在JDK7.0及以后可以是String类型和枚举
在switch中编写任意个case
在switch中,case的类型必须与表达式一致
2、常见的注意事项:
1.case后面的常量值的顺序可以任意,但一般按顺序编写
2.default顺序也可以编写在switch case 中的任意位置
当所有case都不满足时则执行default
建议default编写在所有case的后面
3.break可有可以无
当没有编写break,则从当前第一个匹配的case一直向下执行(也就是穿透)
因此,根据题意适当编写break
4.case可以合并使用
3、当无break时
import java.util.Scanner;
/*
* 输入学生成绩,判断学生成绩等级
* 当成绩小于60,输出E
* 当成绩大于等于60小于70,输出D
* 当成绩大于等于70小于80,输出C
* 当成绩大于等于80小于90,输出B
* 当成绩大于等于90小于等于100,输出A
*/
public class SwitchTest {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入学生成绩:");
int score = input.nextInt();
if(0 <= score && score <= 100) {
switch(score / 10) {
case 10:
case 9:
System.out.println("A");
case 8 :
System.out.println("B");
case 7 :
System.out.println("C");
case 6 :
System.out.println("D");
default :
System.out.println("E");
}
}else {
System.out.println("输入成绩不合法,成绩范围为:0-100");
}
}
}
结果为:
此时输出了满足第一个匹配的条件之后的所有语句
4、当有break时
import java.util.Scanner;
/*
* 输入学生成绩,判断学生成绩等级
* 当成绩小于60,输出E
* 当成绩大于等于60小于70,输出D
* 当成绩大于等于70小于80,输出C
* 当成绩大于等于80小于90,输出B
* 当成绩大于等于90小于等于100,输出A
*/
public class SwitchTest {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入学生成绩:");
int score = input.nextInt();
if(0 <= score && score <= 100) {
switch(score / 10) {
case 10:
case 9:
System.out.println("A");
break;//表示中断,当遇到break则执行switch case外面的语句
case 8 :
System.out.println("B");
break;
case 7 :
System.out.println("C");
break;
case 6 :
System.out.println("D");
break;
default :
System.out.println("E");
}
}else {
System.out.println("输入成绩不合法,成绩范围为:0-100");
}
}
}
结果为:
此时只输出了匹配到的条件的语句