5. 分支结构 switch
-
语法
switch (变量/表达式){ case 值1: 逻辑代码1; case 值2: 逻辑代码2; case 值n: 逻辑代码n; default: 未满足时的逻辑代码; }
public class TestSwitch{ public static void main(String[] args){ //假设场景,一周菜谱 int weekDay = 7; switch(weekDay){ 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;//跳出 } System.out.println("程序结束"); } }
-
可判断类型:
- byte、short、int、char、String(JDK7+)
-
执行流程:
-
如果变量中的值等于值1,则执行逻辑代码1。
-
如果变量中的值等于值2,则执行逻辑代码2。
-
如果变量中的值等于值3,则执行逻辑代码3。
-
如果变量中的值没有匹配的 case 值时,执行 default 中的逻辑代码。
-
注意: 所有 case 的取值不可相同
-
当匹配的 case 被执行后,并不会自动退出整个结构,而是继续向下执行。
-
break 关键字可以在匹配的 case 执行后,直接跳出整个结构。
-
switch 语句内不限制顺序,建议在 default 句后也加入 break 跳出
-
可适当利用不自动跳出特性,代码冗余
case 2; case 3; case 4; System.out.println("炸酱面");//逻辑贯穿,2、3、4 输出同样值 break;
-
switch 代码可读性强,适用 等值判断(举例:菜单选择)
-