我刚开始学习“嵌套for循环”。但我的问题是什么是嵌套for循环正好每次循环时做什么?我仍然感到困惑的是变量“i”正在做什么以及变量“j”正在做什么。如果你能解释每个循环后发生的事情,那么嵌套for循环会更加清晰。
import java.util.Scanner;
public class LoopStatement {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int numStar;
System.out.print("Number of stars: ");
numStar = input.nextInt();
while (numStar < 1 && numStar > 20) {
System.out.println("Enter a valid number ");
numStar = input.nextInt();
}
for (int i = 1; i <= numStar; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
所以如果我输入 4 numStar
,这就是我得到的输出*
**
***
****
答案 0 :(得分:0)
嵌套循环实际上并没有什么特别之处,它们的行为与常规循环完全相同。
具体来说,外部循环从i
循环为1
到numStar
,因此会打印numStar
行。
从j
1
到i
的嵌套循环循环,其中i
是要打印的当前行的编号。在每次迭代中,它会打印一颗星,因此它会打印出i
颗星。
因此,它会在行号1
上打印1
星,在行号2
上打印2
个星号等。
答案 1 :(得分:0)
尝试写下这样的论文:
i=1 j=1 => *
i=1 j=2 => (j<=i) is false
.
.
i=2 j=1 => *
*
i=2 j=2 => *
**
.
.
如果您尝试在纸上书写,您将获得输出。
答案 2 :(得分:0)
为了理解嵌套循环,您必须了解for结构。听起来你没有得到它。
来自基础知识:
for (int i = 1; i <= numStar; i++) {
System.out.println(i);
}
上面的代码按照以下步骤正好迭代numStart:
a-从i = 1开始:int i = 1
b-测试条件:i <= numStar
c-在屏幕上打印i的值:System.out.println(i)
d-递增i值:i++
在条件满足时执行:i <= numStar
。仅在满足条件的情况下执行步骤c和d。
测试循环遵循相同的逻辑:
for (int i = 1; i <= numStar; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
当i = 1时 - &gt; j从1迭代到1.因此它打印&#34; *&#34;
当i = 2时 - &gt; j从1到2迭代。因此它打印&#34; **&#34;
当i = 3时 - &gt; j从1到3迭代。因此它打印&#34; ***&#34;
依旧......
嵌套迭代完成后,换行符为System.out.println();