首页 > 代码库 > 小康陪你学JAVA--------continu3和break的比较
小康陪你学JAVA--------continu3和break的比较
本篇将和大家做个continu3和break的比较。
在Java语言中,有一些跳离的语句,如break、continue等语句,站在结构化程序设计的角度上,并不鼓励使用,因为这些跳离语句会增加调试及阅读上的困难。因此建议:除非在某些不得以的情况下之外,否则尽量不要去使用它们。在本篇中,将介绍break及continue语句。
break语句
break语句可以强迫程序跳离循环,当程序执行到break语句时,即会离开循环,继续执行循环外的下一个语句,如果break语句出现在嵌套循环中的内层循环,则break 语句只会跳离当前层的循环。以下图的for循环为例,在循环主体中有break语句时,当程序执行到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,即会回到循环的起点,继续执行循环主体的部分语句。
将程序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语句则不再执行此次循环的剩余语句,直接回到循环的起始处。