我不明白代码中的嵌套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();
}
}
答案 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
内。