众所周知,java中没有goto语句,但是保留了goto这个关键字。由于goto是在源码级上的跳转,多次使用goto会引起代码混乱容易出错,这也是java取消goto语句的目的所在,但是goto语句也有它的优点,在少数情况下goto还是组织控制流程的最佳手段。在java中虽然没有goto,但是我们可以用标签结合关键字(break,continue)来实现goto的功能。代码如下:
1 package demo; 2 public class LabeledFor { 3 public static void main(String[] args) { 4 int i = 0; 5 outer: 6 for(;true;){ 7 inner: 8 for(; i < 10 ; i++){ 9 System.out.println("i = " + i); 10 if(i == 2){ 11 System.out.println("continue"); 12 continue; //结束当前循环 13 } 14 if(i == 3){ 15 System.out.println("break"); 16 i++; 17 break; //强制退出循环 18 } 19 if(i == 7){ 20 System.out.println("continue outer"); 21 i++; 22 continue outer; //结束当前循环并回到标签outer处重新执行代码 23 } 24 if(i == 8){ 25 System.out.println("break outer"); 26 break outer; //结束循环并回到标签outer处执行循环之外的代码 27 } 28 for(int k = 0;k < 5; k++){ 29 if(k == 3){ 30 System.out.println("continue inner"); 31 continue inner; //结束当前循环并回到标签inner处重新执行代码 32 } 33 } 34 } 35 } 36 37 System.out.println("break outer 跳出外部循环执行剩下的代码"); 38 return;//结束return可以结束代码,可以体现更好的效果,这里就不演示了 39 } 40 }
打印结果:
i = 0 continue inner i = 1 continue inner i = 2 continue i = 3 break i = 4 continue inner i = 5 continue inner i = 6 continue inner i = 7 continue outer i = 8 break outer
同样的规则也适用while循环