switch语句描述
switch语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
switch语法描述
switch (表达式){
case 值:
语句体1;
break;
case 值:
语句体2;
break;
default:
语句体n+1;
break;
}
语法关键字讲解:
表达式:(将要配的值)取值为byte、short、int、char。]DK5以后可以是枚举JDK7以后可以是String
cae后面跟的是要和表达式进行比较的值case:(被匹配的值).
break: 表示中断,结束的意思,用来结束switch语句
default: 表示所有情况都不匹配的时候,就执行该处的内容和if语句的else相似.
case后面的值只能是字面量,不能是变量
case给出的值不允许重复
执行流程:
1.首先计算表达式的值
2.依次和case后面的值进行比较] 如果有对应的值就会执行相应的语句,在执行的过程 中,遇到break就会结束。
3.如果所有的case后面的值和表达式的值都不匹配,就会执.行default里面的语句体,然后结束整个switch语句。
代码实现:
package Testt;
public class Test10 {
public static void main(String[] args) {
//1.定义变量
int number=1;打印输入的是-1
//如果所有的case后面的值和表达式的值都不匹配,就会执.行default里面的语句体,然后结束整个switch语句。
// int number01=5;//请重新输入
//2.根据表达式打印对于的数
switch (number){
case 1:
System.out.println("输入的是-1");
break;//结束循环
case 2:
System.out.println("输入的是-2");
break;
case 3:
System.out.println("输入的是-3");
break;
case 4:
System.out.println("输入的是-4");
break;
default:
System.out.println("请重新输入");
}
}
}
switch优化和注意事项
package Testt;
//switch优化
public class Test11 {
public static void main(String[] args) {
//1.default的位置可以是前可以是后
//2.case穿透 就是语句体没有break造成的 值为-10 值为-100
//3.在jdk12以后可以优化case只有一行语句体可以删除后面的break;
//case 10 -> System.out.println("值为-10");
int number = 10;
switch (number) {
default:
System.out.println("请重新输入");
break;
// case 10 -> System.out.println("值为-10");
case 10:
System.out.println("值为-10");
//break;
case 100:
System.out.println("值为-100");
//break;
// default:
// System.out.println("请重新输入");
}
}
}