用for循环,continue语句,有一种输出99乘法表的方法如下:
public class cf{
public static void main(String args[]){
a:for(int i=1;i<=9;i++){
for(int j=1;j<=9;j++){
if(j>i){
System.out.println();
continue a;
}
System.out.print(i+"*"+j+"="+i*j+" ");
} } }
}
我就是想问下,这个continue语句执行过程是?求达人给菜鸟稍微详细的解释下
public class cf{
public static void main(String args[]){
a:for(int i=1;i<=9;i++){
for(int j=1;j<=9;j++){
if(j>i){
System.out.println();
continue a;
}
System.out.print(i+"*"+j+"="+i*j+" ");
} } }
}
我就是想问下,这个continue语句执行过程是?求达人给菜鸟稍微详细的解释下
直接跳到外部循环接着下去
操作 而是直接在此继续 a 以后的循环 类似于C语言的goto
如果希望使用一条goto语句,并将一个标签放置在想要跳过的语句块前面,就可以使用break语句!ps: 楼主的例子完全可以使用break代替,省道麻烦。
public class cf {
public static void main(String args[]) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
if (j > i) {
System.out.println();
break;
}
System.out.print(i + "*" + j + "=" + i * j + " "); } } }
}
a:for(int i=1;i<=9;i++){
for(int j=1;j<=9;j++){
if(j>i){
System.out.println();
continue a;
}
System.out.print(i+"*"+j+"="+i*j+" ");
} }这个是个双层循环体,内部直接简单continue只能“跳出当前循环体的本次循环”,而如果加标签跳,就可以“跳出对应标签循环体的本次循环”,有多少层跳多少层。像3楼说的,类似goto,不过这个只能跳到循环标签位置。
for(int j=1;j<=9;j++){
if(j>i){
System.out.println();
continue a;
}
System.out.print(i+"*"+j+"="+i*j+" ");
} }当中,continue a;之后
“本轮外层循环(i循环)”的后面要执行的都不管了,进入外层循环的下一轮。
这包括内层本来还要继续执行的
System.out.print(i+"*"+j+"="+i*j+" ");不会执行了
而且外层看来本来还要执行的
for(int j=1;j<=9;j++){...}都不会执行了