小康陪你学JAVAcontinu3和break的比较

     本篇将和大家做个continu3和break的比较。

    在Java语言中,有一些跳离的语句,如break、continue等语句,站在结构化程序设计的角度上,并不鼓励使用,因为这些跳离语句会增加调试及阅读上的困难。因此建议:除非在某些不得以的情况下之外,否则尽量不要去使用它们。在本篇中,将介绍break及continue语句。

 

break语句

     break语句可以强迫程序跳离循环,当程序执行到break语句时,即会离开循环,继续执行循环外的下一个语句,如果break语句出现在嵌套循环中的内层循环,则break 语句只会跳离当前层的循环。以下图的for循环为例,在循环主体中有break语句时,当程序执行到break,即会离开循环主体,而继续执行循环外层的语句。

小康陪你学JAVAcontinu3和break的比较

以下面的程序为例,利用for循环输出循环变量i的值,当i除以3所取的余数为0时,即使用break语句的跳离循环,并于程序结束前输出循环变量I的最终值。

01 // 下面的程序是介绍break的使用方法

02  public class TestJava3_32

03 {

04    public static void main(String[] args)

05  {

06   int i ;

07

08   for(i=1;i<=10;i++)

09   {

10   if(i%3 == 0)

11    break ;    // 跳出整个循环体

12   System.out.println("i = "+i);

13   }

14   System.out.println("循环中断:i = "+i);

15  }

16 }

输出结果:

i = 1

i = 2

循环中断:i = 3

 

程序说明:

1、 第9~13行为循环主体,i为循环的控制变量。

2、 当i%3为0时,符合if的条件判断,即执行第11行的break语句,跳离整个fo循环。此例中,当i的值为3时,3%3的余数为0,符合if的条件判断,离开for循环,执行第14行:输出循环结束时循环控制变量i的值3。通常设计者都会设定一个条件,当条件成立时,不再继续执行循环主体。所以在循环中出现break语句时,if 语句通常也会同时出现。

 

continue语句

     continue语句可以强迫程序跳到循环的起始处,当程序运行到continue语句时,即会停止运行剩余的循环主体,而是回到循环的开始处继续运行。以下图的for 循环为例,在循环主体中有continue语句,当程序执行到continue,即会回到循环的起点,继续执行循环主体的部分语句。

小康陪你学JAVAcontinu3和break的比较

     将程序TestJava3_32 中的break 语句改成continue 语句就形成了程序TestJava3_33.java。可以观察一下这两种跳离语句的不同。break语句是跳离当前层循环,而continue语句是回到循环的起点。程序如下所示:

01 // 下面的程序是介绍continue的使用方法

02  public class TestJava3_33

03 {

04    public static void main(String[] args)

05  {

06   int i ;

07

08   for(i=1;i<=10;i++)

09   {

10   if(i%3==0)

11    continue ;    // 跳出一次循环

12   System.out.println("i = "+i);

13   }

14   System.out.println("循环中断:i = "+i);

15  }

16 }

输出结果:

i = 1

i = 2

i = 4

i = 5

i = 7

i = 8

i = 10

循环中断:i = 11

 

程序说明:

1、 第9~13行为循环主体,i为循环控制变量。

2、 当i%3 为0时,符合if 的条件判断,即执行第11行的continue语句,跳离目前的for循环(不再执行循环体内的其他的语句),而是回到循环开始处继续判断是否执行循环。此例中,当i 的值为3、6、9时,取余数为0,符合if 判断条件,离开当前层的for循环,再回到循环开始处继续判断是否执行循环。

3、 当i 的值为11时,不符合循环执行的条件,此时执行程序第14行:输出循环结束时循环控制变量i的值11。当判断条件成立时,break语句与continue语句会有不同的执行方式。Break语句不管情况如何,先离开循环再说;而continue语句则不再执行此次循环的剩余语句,直接回到循环的起始处。

更多相关文章
  • 圆桌:小微金融:野蛮生长与普惠金融 更多精彩内容,关注"2014易网未来科技峰会"专题 易网科技讯 6月18日消息,由易网科技和易网新闻客户端联合主办的"2014易网未来科技峰会"今日在北京举行,本次峰会主题为"互联网+改变世界",探讨互联 ...
  • MemProof教程简介        MemProof(内存清道夫)是AutomatedQA出品的一款非常不错的检测内存泄漏和资源泄漏的免费调试工具,适合于WIN32平台下使用DELPHI/C++ BUILDER开发的应用程序. 正在装载数据……利用它可以方便的查找出一些忘记释放的指针以及资源.它 ...
  • 也算是用了半年Grunt,几个月前也写过一篇它的入门文章(点此查看),不得不说它是前端项目的一个得力助手.不过技术工具跟语言一样日新月异,总会有更好用的新的东西把旧的拍死在沙滩上(当然Grunt肯定没死,gulp也不是多新颖的东西). 看标题很明显知道相比Grunt,我会更为推崇gulp,不是说Gr ...
  •   像京东,一号店等网站都实现了用微信来登录的功能,就是用手机上的微信扫一扫网站上的二维码,微信上确认后,即可自动用微信的帐号登录网站.     1 创建网站应用   在微信开放平台创建一个网站应用 https://open.weixin.qq.com :      填写网站信息:   申请完后,7 ...
  • 本文作者:LeanCloud 高级工程师 王潇 引言 微信连续两周发布重量级接口.首先是让网页开发者欢欣鼓舞的 JS-SDK,使微信内的 WebView 几乎可以得到微信 Native App 的所有能力.此外,公众平台数据接口,允许开发者获取详细.灵活的运营数据.这两个发布,使这个本来就是入口级的 ...
  • 诺基亚要重回手机市场了.昨天,诺基亚在其官网发布声明称,将通过品牌授权的方式重返智能手机市场,不过时间最早也要等到明年的第四季度.诺基亚将手机业务出售给微软后,就转变成了一家无线网络设备制造商,不过其高管多次对外表示,诺基亚并不排除重返手机市场的可能,只是不会再做硬件制造,而是通过品牌授权的方式进行 ...
一周排行
  • Sequoiadb作为一个文档型NoSQL数据既可以存储结构化数据也可以存储非结构化数据,对于非结构化数据只能使用原生的API进行查询,对结构化数据我们可以选择使用原生的API和开源SQL引擎,目前PostgresS ...
  • 易网科技讯 7月29日消息,据国外媒体报道,美国电信运营商AT&T本周四选定阿尔卡特朗讯.思科和瞻博网络为其电信网主要供应商. 目前,上述三家公司已经在向AT&T出售路由器和交换机等网络设备.此次AT ...
  • Apache Tomcat 是一款 Java Servlet 和 JavaServer Pages 技术的开源软件实现,可以作为测试 Servlet 的独立服务器,而且可以集成到 Apache Web 服务器.下面是 ...
  • //featureClass是自己获取的featureClass,也可是sde中获取的. public void FilterAndZoomToLayer(IFeatureClass featureClass) { ...
  • 人类已经无法阻止色情行业了. 如今,色情网站占全球网站整体数量的12%:每秒钟有28258人在观看色情网站:差不多4000万美国人有浏览色情网站习惯,其中每3人当中有1人是女性,色情文件占全球网络下载量的35%,超过 ...
  • 1.要能够支持Oracle到目标数据仓库2.支持Mondrian3.支持Windows/Linux4.生产系统数据可以快速投递到数据仓库中5.数据仓库的性能可以满足查询和计算的需要6.支持构建实时性决策系统7.适应分 ...
  • 原文出处:http://blog.csdn.net/zsuguangh/article/details/6429592 综合了若干人的blog- 1. 垃圾回收的意义 在C++中,对象所占的内存在程序结束运行之前一直 ...
  • 1.应用沙盒 sandbox   1. 什么是沙盒     每个iOS应用都有自己的应用沙盒(应用沙盒就是应用的文件夹),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒.   2.应用沙盒结构 ...
  • 脚本的解析 env X='() { (a)=>\' sh -c "echo date"; cat echo (1) X='() { (a)=>\’ 这个不用说了,定义一个X的环境变量. ...
  • 需要添加如下参数: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8086 -Dcom.sun.management.jmxre ...