1、最简单的跳转:没有标签的break;
对于我这个曾经学过c++的一点都不难理解,我感觉就是小白也应该很好理解,就是跳出break语句所在的最低级的循环。这应该就很好理解了。。。。
对于我这个曾经学过c++的一点都不难理解,我感觉就是小白也应该很好理解,就是跳出break语句所在的最低级的循环。这应该就很好理解了。。。。
2、很烧脑的跳转:带有标签的break;
其实这个我一直理解了好久,但是并没有弄明白。起先以为是吧flag:与break flag;之间的语句封杀了,即跳转到那个标签,后来试了一下,发现根本就不是这回事。。。这时候我对自己的理解力感到无药可救。。。
后来自己写了一遍,不断调试,看程序的运行顺序,感觉发现了点什么,又在原来的基础上加了一条语句,终于明白是怎么跳转的了23333333.。。
public class Xun_huan {
public static void main(String[] args) {
for( int i = 0 ; i < 2 ; i++ ){
System.out.println( "最外层循环" + i );
flag: //这个标签下面必须是个循环体,不是的话编译不通过
for( int j = 0 ; j < 10 ; j++ ){
System.out.println( "中间层循环" + j );
for( int k = 0 ; k < 10 ; k++ ){
System.out.println( "最内层循环" + k );
break flag; //跳出flag下面的的循环,但是还是会继续向下执行
}
}
System.out.println( "Flag missing!" ); //跳出循环后,这句话还是会被执行的
}
}
}
其实这个我一直理解了好久,但是并没有弄明白。起先以为是吧flag:与break flag;之间的语句封杀了,即跳转到那个标签,后来试了一下,发现根本就不是这回事。。。这时候我对自己的理解力感到无药可救。。。
后来自己写了一遍,不断调试,看程序的运行顺序,感觉发现了点什么,又在原来的基础上加了一条语句,终于明白是怎么跳转的了23333333.。。
public class Xun_huan {
public static void main(String[] args) {
for( int i = 0 ; i < 2 ; i++ ){
System.out.println( "最外层循环" + i );
flag: //这个标签下面必须是个循环体,不是的话编译不通过
for( int j = 0 ; j < 10 ; j++ ){
System.out.println( "中间层循环" + j );
for( int k = 0 ; k < 10 ; k++ ){
System.out.println( "最内层循环" + k );
break flag; //跳出flag下面的的循环,但是还是会继续向下执行
}
}
System.out.println( "Flag missing!" ); //跳出循环后,这句话还是会被执行的
}
}
}
3、continue语句就很好理解了,带标签的continue就是跳转到标签处继续运行。。。。当标签下的循环进行完后继续向下执行。。
4、return语句,直接结束,不解释。。