多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] ## **switch基本语法** **基本语法:** ```   switch(表达式){     case 值1:       语句块1;       break;     case 值2:       语句块2:       break;     case 值3:       语句块3:       break;     ....     default:       语句块n+1;     break;   } ``` switch  case  break  default都是关键字 **switch**:小括号为整形或者字符型变量   表达式为byte  short  int  char  Java 7后加入了String  但不是StringBuffer和StringBuilder  **case**:表示“情况,情形”,case值不可以重复,case 标签可以是: * 类型为 char、byte、 short 或 int 的常量表达式。 * 枚举常量。 * 从 Java SE 7 开始, case 标签还可以是字符串字面量。 **default:表示"**默**认”,即其他情况都不满足。default 后要紧跟冒号,default 块和 case 块的先后顺序可以变动,不会影响程序执行结果。通常,default 块放在末尾,也可以省略不写。** **break:表示“停止”,即跳出当前结构。** 如果在 case 分支语句的末尾没有 break 语句,有可能触发多个 case 分支。那么就会接着执行下一个 case 分支语句。这种情况相当危险,常常会引发错误。为此,我们在程序中从不使用 switch 语句。 switch 语句的执行过程如下:表达式的值与每个 case 语句中的常量作比较。如果发现了一个与之相匹配的,则执行该 case 语句后的代码。如果没有一个 case 常量与表达式的值相匹配,则执行 default 语句。当然,default 语句是可选的。如果没有相匹配的 case 语句,也没有 default 语句,则什么也不执行。 <br> <br> ## **switch案例一:** 小明考试,如果小明考60分,则口头奖励,如果小明考70分则奖励一个胖胖糖,考80分则奖励摩天轮一圈,考90则奖励小霸王游戏机一部,100分则奖励一部诺基亚手机一部 ### **案例一:代码实现** ``` import java.util.Scanner; public class day01_switch { public static void main(String[] args) { int children = 90; Scanner s = new Scanner(System.in); System.out.println("请输入分数:"); int month = s.nextInt(); s.close(); switch(month) { case 60: System.out.println("刚刚及格,要再接再厉"); break; case 70: System.out.println("给小明同学奖励一根胖胖糖~~~"); break; case 80: System.out.println("摩天轮一圈"); break; case 90: System.out.println("奖励小霸王游戏机一部"); break; case 100: System.out.println("奖励一部诺基亚手机一部"); break; default: System.out.println("挨批评吧!!!"); break; } } } ``` <br> <br> ## **switch注意**: switch语句会将小括号里面的表达式,和case后面的数挨个对比,找到 第一个与之匹配的(仅匹配一次),然后开始逐个执行各个case后面的语句,直到遇到break; 就算case后面没有代码,只要看不到break,也会继续往下走。