2.Switch语句
2.1 Switch语句格式
格式:
Switch(表达式){
* case值1:
* 语句体1;
* break;
* case值2:
* 语句体2;
* break;
* ...
* default:
* 语句体n+1;
* [break;] //可选
}
格式说明:
1.表达式:取值为byte,short,int,char,JDKS5以后可以是枚举;
JDK7以后可以是string;
2.case:后跟和表达式相比较的值;
3.break:表示结束,中断,用来结束Switch语句;
default后的break可省;
4.default: 表示与case后的所有值都不匹配时,就执行该语句,类似于if语句中的else;
执行流程:
1. 首先计算Switch后(表达式)的值;
2. 与case后的值相比较,如果有对应的值,就执行相应语句后面的语句,在执行过程中遇见break就结束;
3. 如果所有的case后面的值都与表达式的值不匹配,就执行default后的语句;
4. case穿透:
switch (week){ case 1: System.out.println("张三"); break; case 2: System.out.println("李四"); //break; case 3: System.out.println("王五"); break; default: system.out.println("你的输入有误") }
当我们省略了case语句后面的break,当我们在控制台输入2的时候对应控制台输出的结果成了李四王五;
注:在Switch语句中,如果case控制的语句体后面不写break,将出现穿透现象,在不判断下一个case值得情况下,继续向下运行,直到遇到break结束,或整体Switch语句结束;
Switch例:输入1-7控制台输出对应星期
import java.util.Scanner; public class text037 { public static void main(String[] args) { System.out.println("开始"); Scanner scanner=new Scanner(System.in); System.out.println("请输入一个星期数: "); int week=scanner.nextInt(); switch (week){ 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("您输入的值有误"); } System.out.println("结束"); } }