主要整理一下容易出错的switch和控制跳转。
- switch语句
- 控制跳转语句
switch语句
1、格式:
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
格式解释说明:
switch:说明这是switch语句。
表达式:可以是byte,short,int,char
JDK5以后可以是枚举
JDK7以后可以是字符串
case:后面的值就是要和表达式进行比较的值
break:表示程序到这里中断,跳出switch语句
default:如果所有的情况都不匹配,就执行这里,相当于if语句中的else
2、面试题
switch语句的表达式可以是byte吗?可以是long吗?可以是String吗?
可以,不可以,JDK7以后可以
3、执行流程:
A:首先计算表达式的值
B:和每一个case进行匹配,如果有就执行对应的语句体,看到break就结束。
C:如果没有匹配,就执行default的语句体n+1。
4、注意事项:
A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
B:default可以省略吗?
可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
特殊情况:
case就可以把值固定。
A,B,C,D
C:break可以省略吗?
可以省略,但是结果可能不是我们想要的。
会出现一个现象:case穿透。
最终我们建议不要省略
D:default一定要在最后吗?
不是,可以在任意位置。但是建议在最后。
E:switch语句的结束条件
a:遇到break就结束了
b:执行到末尾就结束了
5、if语句和switch语句各自的场景
A:if
针对boolean类型的判断
针对一个范围的判断
针对几个常量的判断
B:switch
针对几个常量的判断
//看程序写结果
//y=4
//---------------
//b=6
public static void main(String[] args) {
int x = 2;
int y = 3;
switch(x){
default:
y++;
break;
case 3:
y++;
case 4:
y++;
}
System.out.println("y="+y);
System.out.println("---------------");
int a = 2;
int b = 3;
switch(a){
default:
b++;
case 3:
b++;
case 4:
b++;
}
System.out.println("b="+b);
}
跳转控制语句
1、break:中断的意思
A:用在循环和switch语句中,离开此应用场景无意义。
B:作用
a:跳出单层循环
b:跳出多层循环,需要标签语句的配合
//跳出单层循环
public static void main(String[] args) {
for(int x = 0;x < 10;x++){
if(x==2){
break;
}
System.out.println("HelloWorld");
}
for(int i=0;i<3;i++){
for(int j=0;j<4;j++){
if(j==2){
break;
}
System.out.println("*");
}
System.out.println();
}
}
//输出结果
HelloWorld
HelloWorld
*
*
*
*
*
*
----------
//跳出多层循环
public static void main(String[] args) {
wc:for(int i=0;i<3;i++){
nc:for(int j=0;j<4;j++){
if(j==2){
break wc;
}
System.out.println("*");
}
System.out.println();
}
}
//输出结果
*
*
2、continue:继续
A:用在循环中,离开此应用场景无意义。
B:作用
a:跳出单层循环的一次,可以继续下一次
break退出当前循环
continue退出本次循环,进入下一次循环
public static void main(String[] args) {
for(int x = 0;x < 10;x++){
if(x==3){
continue;
}
System.out.println("HelloWorld");
}
}
//运行结果(与break对比)
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
3、return:返回
A:用于结束方法的,后面还会在继续讲解和使用。
B:一旦遇到return,程序就不会在继续往后执行。
//这个例子解释一下break,continue,return的区别
public static void main(String[] args) {
for(int x=0;x<10;x++){
if(x==2){
System.out.println("退出");
break;
//continue;
//return;
}
System.out.println(x);
}
System.out.println("over");
}
运行结果
break:0 1 退出 over
continue:0 1 退出 3 4 5 6 7 8 9 over
return:0 1 退出