跳转语句
跳转语句能够改变程序的执行顺序,可以实现程序的跳转。
这里先记录break和return语句。
break语句
break语句可用于while、for、do-while结构,它的作用是强行退出循环体,不再执行循环体中剩余的语句。
在循环体中使用break语句有两种方式:带标签和不带标签。格式如下:
break;
break label1;
不带标签的break语句使程序跳出所在层的循环体,而带标签的break语句是程序跳出标签指示的循环体。
int[] numbers = {1,2,3,4,5,6,7,8,9,10};
for(int i=0;i<numbers.length;i++){
if(i==3){
break;//当条件满足i==3时跳出循环
}
System.out.println("Count is:"+i);
}
结果如下:
Count is:0
Count is:1
Count is:2
break还可以配合标签使用,示例如下:
label1:for(int x=0;x<5;x++){
for(int y=5;y>0;y--){
if(y==x){
//跳转到label1指向的循环
break label1;
}
System.out.printf("(x,y)=(%d,%d)",x,y);
//打印一个换行符,实现换行
System.out.println();
}
}
System.out.println("Game Over!");
结果如下:
(x,y)=(0,5)
(x,y)=(0,4)
(x,y)=(0,3)
(x,y)=(0,2)
(x,y)=(0,1)
(x,y)=(1,5)
(x,y)=(1,4)
(x,y)=(1,3)
(x,y)=(1,2)
Game Over!
另外,如果break后面没有指定外循环标签,则结果为:
(x,y)=(0,5)
(x,y)=(0,4)
(x,y)=(0,3)
(x,y)=(0,2)
(x,y)=(0,1)
(x,y)=(1,5)
(x,y)=(1,4)
(x,y)=(1,3)
(x,y)=(1,2)
(x,y)=(2,5)
(x,y)=(2,4)
(x,y)=(2,3)
(x,y)=(3,5)
(x,y)=(3,4)
(x,y)=(4,5)
Game Over!
continue语句
continue语句结束本次循环,跳出循环体中尚未执行的语句,接着进行终止条件判断,以决定是否继续循环。
在循环体中使用break语句有两种方式:带标签和不带标签。格式如下:
continue;
continue label1;
示例:
int[] numbers = {1,2,3,4,5,6,7,8,9,10};
for(int i=0;i<numbers.length;i++){
if(i==3){
continue;
}
System.out.println("Count is:"+i);
}
当条件i==3时执行continue语句,continue语句会终止本次循环,循环体中continue之后的语句不再执行,接着下次循环,所以输出结果中没有 3.
结果如下:
Count is:0
Count is:1
Count is:2
Count is:4
Count is:5
Count is:6
Count is:7
Count is:8
Count is:9
Count is:10
默认情况下,continue只会跳出最近的内循环,如果要跳出外循环,可以为外循环添加一个标签label1。
示例:
label1:for(int x=0;x<5;x++){
for(int y=5;y>0;y--){
if(y==x){
//跳转到label1指向的循环
continue label1;
}
System.out.printf("(x,y)=(%d,%d)",x,y);
//打印一个换行符,实现换行
System.out.println();
}
}
System.out.println("Game Over!");
由于跳过了 y==x,因此下面的内容没有输出:
(x,y) = (1,1)
(x,y) = (2,2)
(x,y) = (3,)
(x,y) = (4,4)
结果:
(x,y)=(0,5)
(x,y)=(0,4)
(x,y)=(0,3)
(x,y)=(0,2)
(x,y)=(0,1)
(x,y)=(1,5)
(x,y)=(1,4)
(x,y)=(1,3)
(x,y)=(1,2)
(x,y)=(2,5)
(x,y)=(2,4)
(x,y)=(2,3)
(x,y)=(3,5)
(x,y)=(3,4)
(x,y)=(4,5)
Game Over!
**注意:**break和continue的区别在于前者作用是强行退出循环体,不再执行循环体中剩余的语句。而continue则是结束本次循环,跳出循环体中尚未执行的语句,接着进行终止条件判断,以决定是否继续循环。