/*
1.switch语句也是选择语句,也可以叫做分支语句
2.switch语句的语法格式
switch(值){
case 值1:
java语法;
java语法;
break;
case 值2:
java语法;
java语法;
break;
case 值3:
java语法;
java语法;
break;
default:
java语法;
}
以上是一个完整的switch语句:
其中:break语句和default不是必须的
switch语句支持的类包括int类型以及String类型
switch语句本质上是只支持int和String,但是byte,short,char也可以使用在switch语句中,因为byte,short,char可以进行自动类型转换
switch语句中“值”与“值1”,“值2”比较的时候会使用“==”进行比较
3.switch执行原理:
拿“值”与“值1”进行比较,如果相同,则执行该分支中的Java语句,然后遇到“break;”语句就结束了。
如果“值”与“值1”不相等会继续拿“值”与“值2”进行比较,如果相同,则执行该分支中的Java语句,然后遇到“break;”语句switch结束
注意:如果分支执行了,但分支最后没有“break;”此时会发生case穿透现象。
如果所有的case都没有匹配成功,那么最后default分支会执行
*/
public class test
{
public static void main(String[] args){
//switch只支持int和String类型
//long x=100L;
//switch(x){}
byte b=100;
switch(b){}
short s=100;
switch(s){}
char c='a';
switch('a'){}
switch("abc"){}
//案例:
//根据数字来决定中午吃什么
int num =1;//定义一个数字
System.out.print("今天中午吃:");
switch(num){
case 0:
System.out.println("红烧排骨");
break;
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穿透现象
int num1=2;
System.out.print("今天中午吃:");
switch(num1){
case 0:
System.out.println("红烧排骨");
break;
case 1:
System.out.println("糖醋里脊");
break;
case 2:
System.out.println("油闷大虾");
case 3:
System.out.println("京酱肉丝");
case 4:
System.out.println("咸菜馒头");
break;
case 5:
System.out.println("清水馍馍");
break;
}
//关于default语句,当所有的case都没有匹配上的时候,执行default语句。
System.out.print("今天中午吃:");
int num3=10;
switch(num3){
case 0:
System.out.println("红烧排骨");
break;
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;
default:
System.out.println("老北京炸酱面");
break;
}
//关于case合并问题
System.out.print("今天中午吃:");
int num4=3;
switch(num4){
case 0:
System.out.println("红烧排骨");
break;
case 1:case 2:case 3:
System.out.println("京酱肉丝");//不管num4=1,2,3,都会输出京酱肉丝
break;
case 4:
System.out.println("咸菜馒头");
break;
case 5:
System.out.println("清水馍馍");
break;
default:
System.out.println("老北京炸酱面");
break;
}
}
}