Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 830|回复: 0

java中的break语句

[复制链接]

该用户从未签到

发表于 2011-9-14 20:41:22 | 显示全部楼层 |阅读模式
java 中,break语句有3种作用。第一,在 switch 语句中,它被用来终止一个语句序列或者语句块。第二,它能被用来退出一个循环。第三,它能作为一种“先进”的 goto 语句来使用。下面对最后两种用法进行解释。
  1. 使用 break 退出循环
  可以使用 break 语句直接强行退出循环,忽略循环体中的任何其他语句和循环的条件测试。在循环中遇到 break 语句时,循环被终止,程序控制在循环后面的语句重新开始。下面是一个简单的例子。
例:使用 break 语句退出循环。
class BreakLoop{
   public static void main(String[] args){
      for(int i=0; i<100; i++){
         if(i==5) break; //如果i等于5,终止循环
         System.out.println("i: "+i);
      }
   System.out.println("Loop complete.");
   }
}
该程序的输出结果如下:
i: 0
i: 1
i: 2
i: 3
i: 4
Loop complete.
  上述程序中,尽管 for 循环被设计为从0执行到99,但是当i等于5时,break语句终止了程序。
  break语句能用于任何 Java 循环中,包括人们有意设置的无限循环。在一系列嵌套循环中使用 break 语句时,它将仅仅终止最里面的循环。
  关于break,在这里要记住两点。首先,一个循环中可以有一个以上的 break 语句,但要小心,太多的 break 语句会破坏代码结构。其次,switch语句中的 break 仅仅影响该 switch 语句,而不会影响其中的任何循环。
  2. 把 break 当作 goto 的一种形式来用
  break语句除了在 switch 语句和循环中使用之外,它还能作为 goto 语句的一种“文明”形式来使用。Java中没有 goto 语句,因为 goto 语句提供了一种改变程序运行流程的非结构化方式。这通常使程序难以理解和难于维护。它也阻止了某些编译器的优化。但是,有些地方 goto 语句对于构造流程控制是有用的而且是合法的。例如,从嵌套很深的循环中退出时,goto语句就很有帮助。因此,Java定义了 break 语句的一种扩展形式来处理这种情况。通过使用这种形式的break,用户可以终止一个或者几个代码块。这些代码块不必是一个循环或一个 switch 语句的一部分,它们可以是任何的块。而且,由于这种形式的 break 语句带有标签,可以明确指定执行从何处重新开始。可以看到,break拥有 goto 语句的优点,并舍弃了 goto 语句带来的麻烦。
  标签 break 语句的通用格式如下所示:
  break label;
  这里,标签 label 是标识代码块的标签。当这种形式的 break 执行时,控制被传递出指定的代码块。被加标签的代码块必须包围 break 语句,但是它不需要是直接的包围 break 的块。这意味着用户可以使用一个加标签的 break 语句退出一系列的嵌套块。但是不能使用 break 语句将控制传递到不包含 break 语句的代码块。
  要指定一个代码块,在其开头加一个标签即可。标签(label)可以是任何合法有效的 Java 标识符后跟一个冒号。给一个块加上标签后,就可以使用这个标签作为 break 语句的对象了。这样做会使执行流程在加标签的块的结尾重新开始。例如,下面的程序实例了3个嵌套块,每一个都有它自己的标签。break语句使执行向前跳,跳过了定义为标签 second 的代码块结尾,跳过了两个 println() 语句。
例:使用带标签的 break 语句。
//BreakLabel.java
class BreakLabel{
   public static void main(String[] args){
      boolean t=true;
      first:{
         second:{
            third:{
               System.out.println("Before the break.");
               if(t) break second;
               System.out.println("This won't execute");
            }//end third
            System.out.println("This won't execute");
         }//end second
         System.out.println("This is after second block.");
      }//end first
   }
}
该程序的输出结果如下:
Before the break.
This is after second block.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-6-7 13:59 , Processed in 0.361474 second(s), 46 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表