zoukankan      html  css  js  c++  java
  • Java初学者:continue和break

     我们前面已经说过了java的两种循环:for循环和while循环,这次我们说一下关于这两个循环的两种特殊操作:continue和break。英语里,continue是继续的意思,而break则是中断的意思。其实在java里,这两种操作也是这个意思,下面我们分别介绍一下这两个操作。

        首先说一下continue,当循环里出现这个字,意思就是不再执行continue以后的操作,而是转到循环开始那里进行条件判断,如果可以,则进行新一轮的循环,否则就退出循环。这里的循环,可能是for循环,也可能是while循环。现在假设我们有一个如这样形式的while循环:

        while(条件1)

        {

            语句1;

            if(条件2)

            {

                 语句2;

                 continue;

            } 

            语句3;

        }

        我们假设开始的时候条件1为true, 我们进入while循环,先是执行语句1,然后我们判断条件2,假设此时条件2为true, 然后就会进入if里面,会执行语句2,然后执行contnue;

        然后呢?注意了,由于continue的关系,此时程序将直接跳转到while后面的圆括号那里对条件1进行判断,假如条件1还是true,我们又进入了while,执行语句1,然后判断条件2,如果此时条件2为false, 则不进入if语句,于是我们将不会运行continue, 然后我们就会运行语句3, 然后回到while后面的圆括号那里对条件1进行判断......。

        我想读者此时不难发现,如果条件2一直为真,那么语句3将永远无法被执行到。我们这里暂时并不讨论这样的操作有什么实际意义,只要先弄明白continue的原理就好。实际编程中,读者可以灵活运用continue的特性。(有时候continue在循环里可以替代if-else语句,有时候则用来在特定情况下规避某些操作,比如,有可能用在链表和树的操作上。)

        同样的,如果continue出现在for循环里,其工作原理是一样的,这里就不再赘述。


         那么,break呢?break就相对比较简单了,break就是强制退出的意思,当一个循环中出现break并且被执行到,那么将强制退出循环,记住,是强制的,无条件的退出。现在假设我们有一个这样的for循环:

        for(......)

        {

            语句1;

            break;

            语句2;

        }

        语句3;

        那么,当程序执行到break的时候,将会跳出这个for循环,而去执行语句3,当然,语句2将不会被执行到。

        下面,我们来写个小程序来验证一下continue和break,在这个程序中,我们先生成一个0到100之间的随机数,然后我们使用for循环,i从0到100,如果i是那个随机数,则跳出整个循环,如果i为偶数,则打印出来,如果为奇数,那么则跳过。以下是程序代码和运行结果:

     注意,由于我们使用了随机数,所以每次的运行结果如果不同,那是正常的,不同点就在于,那个随机数不同,所以程序跳出的时候也是不同的,极端的情况是我们的随机数是0,那么将不会打印出任何数字,直接跳出循环。屏幕上只会显示Processing completely.

        以上这个小例子可以基本的说明了continue和break的特点。事实上,有些程序员并不赞成使用这两种操作,认为这会破坏程序的可读性和造成逻辑上的混乱,但是在我这个菜鸟来看,合理的运用continue和break,有时候能够简化代码,而且能写出比较精巧的程序来。总之仁者见仁智者见智,在以后的程序设计中,每个人都有自己的感受吧。

  • 相关阅读:
    Class的用途
    Flash网络编程安全沙箱问题隆重解决 (转)
    带参数的EventDispatcher
    Object的效率
    Oracle数据库语言修改成UTF8
    Python之字符串详解1
    初级/中级/高级运维,你是哪一级?
    这可能是php世界中最好的日志库——monolog
    vc程序大小优化最佳方案(转)http://blog.sina.com.cn/s/blog_4c50333c0100gjs3.html
    C# 调用lua 报错未能加载文件或程序集“lua51.dll”或它的某一个依赖项。找不到指定的模块。 解决方法
  • 原文地址:https://www.cnblogs.com/entry-android/p/5538831.html
Copyright © 2011-2022 走看看