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,有时候能够简化代码,而且能写出比较精巧的程序来。总之仁者见仁智者见智,在以后的程序设计中,每个人都有自己的感受吧。