Java没有提供goto语句来控制程序的跳转,这样提高了程序流程控制的可读性,但是降低了程序控制流程的灵活性,为了弥补这种不足,Java提供了continue 和break来控制循环结构。除此之外还有return 可以结束整个方法,当然也就结束了循环。
1,使用break结束循环
break 用于完全结束一个循环,跳出循环体。不管哪种循环,一旦在循环体中遇到break,系统将完全结束掉该循环。
程序:
运行结果:
可以看到当i等于2时,循环体内遇到break语句,程序结束了该循环。
break语句不仅可以结束掉当前所在的循环,还可以结束掉外层循环。需要在break后紧跟一个标签,这个标签用来标识要结束的外层循环。
*Java中的标签就是一个紧跟着英文冒号(:)的的标识符。Java的标识符只有放在循环语句之前才有用。
程序:
运行结果:
当j等于1时,程序遇到一个breal outer;语句,这行代码将会导致结束outer标签指定的循环。如果把标签放在break语句所在的循环之前定义,也就失去了标签的意义,因为break默认就是结束其所在循环。
2,使用continue忽略本次循环剩下语句
continue和break的区别在于,continue只是忽略本次循环剩下的语句,立即开始下次循环,并不会终止循环;而break则是完全终止循环。
程序:
运行结果:
可以看到,当i等于1时,程序没有输出"after continue"字符串,因为程序执行到continue时,忽略了当次循环中continue后的代码。如果把continue放在循环中最后一行是没有任何意义的,因为它忽略了一片空白而已。
与break一样,continue后也可以跟一个标签,用于直接跳过标签所标识的循环的当次循环的剩下语句,直接开始标签所标识的循环的下一次循环。
程序:
运行结果:
结果表明,每次当j等于1的时候,continue outer;就会执行,后面的语句就会给忽略,结束掉外层循环的本次循环,立即开始下一次,内循环也会结束掉。
3,使用return结束 方法
return不是专门拿来结束循环的,return的功能是结束一个 方法 。当一个方法执行到一个return语句时,这个方法将会给结束。
Java程序中大部分循环都被放在方法中执行,一旦在循环体内执行到renturn语句,return就会结束掉该方法,循环也就随之结束了。
程序:
运行结果:
当i等于1时,程序将完全结束(mian方法结束时也就是java程序结束时)。从结果看,虽然return不是专门用于循环结构控制的关键字,但通过renturn;确实可以结束一个循环。与continue和break不同的是,return是直接结束整个方法,不管这个return处于多少层循环中。