switch语句的格式
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
执行流程
* 先计算表达式的值
* 然后和case后面的匹配,如果有就执行对应的语句,否则执行default控制的语句
import java.util.Scanner;
class demo{
public static void main(String[] args){
// 给定一个值,确定今天星期几。1代表星期一。2代表星期二,以此类推
Scanner s = new Scanner(System.in);
System.out.println("请输入一个数字");
int i = s.nextInt();
switch (i){
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("请输入1到7 的数字");
break;
}
}
}
--------------------------------------------------------
请输入一个数字
3
今天是星期三
注意:
a:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
* b:default可以省略吗?
* 可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
break可以省略吗?
省略,会出现一个现象:case穿透。
default一定要在最后吗?
* 不是,可以在任意位置。但是建议在最后。
switch语句的结束条件
* a:遇到break就结束了
* b:执行到switch的右大括号就结束了
表达式可以接受什么样子的数据类型
int类型,或者是可以自动提升为int类型的基本数据类型,byte short char
枚举,字符串