Java中的Switch语句
概念
Switch语句是单条件多分支的开关语句
一般定义格式如下
switch(表达式) {
case 常量1 :
语句体1;
break;
case 常量2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
Switch语句表达式
Switch语句表达式可以接收基本数据类型:byte,short,char,int;
引用数据类型:枚举(JDK5.0),string字符串(JDK7.0)
注意事项
- case后面只能是常量,不能是变量,而且多个case后面的值互不相同。
- default不建议省略,其作用是对不正确的情况给出提示。
- break不可省略,若省略,会出现case穿透现象,即若无break则程序会继续执行语句直到遇见break语句为止。
Switch语句和If语句的区别
- Switch语句建议判断固定值时使用
- If建议判断区间或范围时使用
Switch-case与if-else之间的转换
- 开发中凡是可以使用Switch-case结构的场景都可以改写为if-else。反之,不成立。
- 开发中,如果一个具体问题既可以使用Switch-case,又可以使用if-else的时候,推荐使用switch-case。因为相较于if-else,switch-case效率稍高。
练习题
从键盘输入一个整数,输出其对应的星期几
- 整数范围:
1-7 - 对应关系:
1 星期一
2 星期二
3 星期三
4 星期四
5 星期五
6 星期六
7 星期日 - 若输入范围超出1-7,则提示输入错误
源代码如下
// cherish 2019.12.14
//从键盘输入一个整数,输出对应星期几
import java.util.Scanner;
public class test4 {
public static void main(String[] avgs) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字(1-7):");
int x = sc.nextInt();
switch (x) {
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("输入错误");
break;
}
}
}