switch语句:
switch语句从字面上讲,可以称为开关语句,是一种多分支选择结构,一般与case、break、default配合使用,对流程进行控制。
switch语句的语法格式如下:
switch(表达式) {
case 值1: 语句1;
break;
case 值2: 语句2;
break;
case 值3: 语句3;
break;
default: 语句4;
break;
}
运行机理:
switch中的表达式结果会找对应的case匹配,如果匹配成功就找对应的的case执行
直到遇到break结束,如果case都不匹配,会直接执行default后面的语句。
总结:
1,一般一个case语句都会和一个break语句进行搭配,因为如果匹配到一个case后,若后面没跟break语句,就会继续执行下面的case语句内容,无论下面匹配的case值是什么,后面的值都会视为无效值的,直到遇到break语句或者执行到最后的默认语句default才会结束。
2,switch语句中的break语句的作用是跳出switch语句
以下面的题目为例:
char c = '\0';
System.out.println(c);
for(int i=1;i<=4;i++) {
switch(i) {
case 1: c = 'J';
System.out.print(c);
case 2: c = 'e';
System.out.print(c);
break;
case 3: c = 'p';
System.out.print(c);
default: System.out.print("好");}}
输出结果为:
Jeep好好
我来浅浅地分析一下:
step1:
i=1,执行case 1,输出J,因为无break语句,忽视case 2这个条件,直接执行c = 'e',输出e,遇到了break语句,则跳出switch语句。
step2:
i=2,执行case2,输出e,下一句因为有break语句,所以跳出switch语句、
step3:
i=3,执行case3,输出p,因为没有break语句,所以继续执行下面的语句,遇到默认语句,则输出‘好’。
step4:
i=4,无匹配语句,所以就会执行默认语句,输出‘好’。
然后i=5结束for循环。
ps:switch语句中不是必须有default选项的。switch语句首先会找满足条件的case值做为执行后面的程序入口,若所有的case都不满足,则找default入口,若未找到则退出整个语句;default只是一个备用入口,有没有都无所谓。