嵌套循环和中断如何在Java中工作?

时间:2016-05-03 17:07:51

标签: java

我不明白代码中的嵌套for循环如何工作以及break的作用是什么?

package demo;
import java.util.Scanner;
public class Demo {

public static void main(String[] args) {
    int i,j,k;

    for(i=1; i<= 5;i++)
    {
        for(j=1;j<=i; j++){

            for(k=1;k<=j;k++)
            {
            System .out.print(k);
            break;
            }
     }
    System.out.println();
    }
}

1 个答案:

答案 0 :(得分:1)

让我们打破这一点,从第一个for循环开始:

for(i=1; i<= 5;i++)

作业声明i=1只是声明i等于1。条件语句i<=5表明只要i小于或等于5,循环就应该运行。在每次循环运行之前检查此语句。最后一个语句i++表示每次循环运行后i增加1

如果有帮助,也可以用以下方式表示:

int i = 1;
if (i<=5) {
    //execute code here
    i = i+1;
    //return to if statement
}

(当然,它实际上不能用这种方式编码,因为Java中没有GOTO命令。用普通for语句块替换if循环的唯一可行方法是在递归方法中编写上面的代码部分,这是没有意义的,因为递归方法比循环更复杂。)

现在,break语句的作用是终止最内层的循环。考虑这个例子(为简单起见,这只是使用没有实际for语句的循环名称的伪代码;只是想象每个都是for循环:

LOOP1 {
    LOOP2 {
        LOOP3 {
            // some code here
            break;
        }
    }
}

当达到break语句时,LOOP3将被终止,即使它会以其他方式继续运行。请注意,这只会终止LOOP3;其他两个循环将继续运行。

但是,可以使用break终止外部循环。如果代码是这样写的:

LOOP1 {
    LOOP2 {
        LOOP3 {
            // some code here
            break LOOP1;
        }
    }
}

LOOP1将被终止;这也会导致其他两个循环终止,因为它们嵌套在LOOP1内。