控制语句(3)

跳转语句

跳转语句能够改变程序的执行顺序,可以实现程序的跳转。
这里先记录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则是结束本次循环,跳出循环体中尚未执行的语句,接着进行终止条件判断,以决定是否继续循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值