在任何迭代语句的主题部分,都可用break和continue控制循环的流程。其中,break用于强行退出循环,不执行循环中剩余的语句,而continue则停止执行当前的迭代,然后退回循环起始处,开始下一次迭代。
下面这个程序向大家展示了break和continue在for和while循环中的例子:
public class BreakAndContinue { public static void main(String[] args) { for (int i = 0; i <100 ; i++) { if(i==74) break; if(i%9!=0) continue; System.out.print(i+" "); } System.out.println(); int j=0; while (true){ j++; if(j==74) break; if(j%9!=0)continue; System.out.print(j+" "); } }
}
在这个for循环中,i的值永远永远不会达到100,因为一旦i达到74,break语句就会中断循环。通常,只有在不知道中断条件何时满足时,才需要这样使用break。只要i不能被9整除,continue语句就会使执行过程返回到最开头(这使i值递增)。如果能够整除,则将值显示出来。
第二中农for循环展示了foreach用法,他将产生相同的结果。
最后,可以看到一个“无穷while循环”的情况,然而,循环内部有一个break语句,可终止循环。除此以外,大家还会看到continue语句执行序列移回到循环的开头,而没有去完成continue语句之后的所有内容,(只有在i值能被9整除时才打印出值。)
无穷循环的第二种形式是for(;;)编译器将while(true)与for(;;)看做是同一回事。所以具体选用哪个取决于自己的编程习惯。
练习:
修改本章练习1,通过使用break关键词,使得程序在打印到99时退出,然后尝试使用return来达到相同的目的。