Java 为什么这个循环显示这个输出?

Java 为什么这个循环显示这个输出?,java,for-loop,Java,For Loop,我的问题是,j=0的值为什么会出现在第二行,即使我们在第一行显示后增加它 另外,为什么i=2的值是两次,而i=3的值是三次 您声明了intj=0,因此每当外部循环运行时,j的值设置为0。 重复i值的原因是内循环。每次循环运行时,i的值都是相同的。因为你说“直到j2打印3次 这个概念称为嵌套循环。for循环是外部循环,其i值为1到4。在内部while循环中,j的值被初始化为0,直到j=i-1(因为while循环中提到的条件是j

我的问题是,j=0的值为什么会出现在第二行,即使我们在第一行显示后增加它


另外,为什么i=2的值是两次,而i=3的值是三次

您声明了
intj=0,因此每当外部循环运行时,j的值设置为0。

重复i值的原因是内循环。每次循环运行时,i的值都是相同的。

因为你说“直到j
i = 1        j = 0   
i = 2        j = 0
i = 2        j = 1
i = 3        j = 0
i = 3        j = 1
i = 3        j = 2
i = 4        j = 0
i = 4        j = 1
i = 4        j = 2
i = 4        j = 3
(i=0;i<5;i++)的
{
int j;
对于(j=0;j
Outerfor循环在外循环的第二次迭代中将j重新初始化为0,就像在外循环的每次迭代中一样。因此,第二行显示j为0


因为在外部for循环的第二次和第三次迭代中,内部循环分别执行两次和三次,但外部循环变量值在外部循环的迭代过程中保持不变。因此,i=2和i=3显示了两次和三次。

代码中的j变量和i变量如下所示:

i = 1        j = 0   
i = 2        j = 0
i = 2        j = 1
i = 3        j = 0
i = 3        j = 1
i = 3        j = 2
i = 4        j = 0
i = 4        j = 1
i = 4        j = 2
i = 4        j = 3
  • i=2:j=0->1:2次打印

  • i=3:j=0->1->2打印3次


这个概念称为嵌套循环。for循环是外部循环,其i值为1到4。在内部while循环中,j的值被初始化为0,直到j=i-1(因为while循环中提到的条件是j 输入for循环的第一次迭代(i=1)。现在进入while循环的第一次迭代(j=0)。条件为真(0<1)。i=1 j=0已打印。在while循环的下一次迭代中,j=1,条件为false(1不小于1)。因此,while循环现在退出

现在在for循环的第二次迭代中,i值递增(i=2)。现在进入while循环的第一次迭代(j=0)。条件为真(0<2)。i=2 j=0已打印。在while循环的下一次迭代中,j=1,条件为真(1<2)。i=2 j=1已打印。在while循环的下一次迭代中,j=2,条件为false(2不小于2)。因此,当循环退出时

如您所见,在for循环的第一次迭代中,print只执行一次。在for循环的第二次迭代中,执行两次打印。这是因为打印的执行取决于j的值小于i(i每次增加1)。此模式将重复,对于i=3,print语句将执行三次,以此类推


希望你能理解。如果没有,请在评论中澄清您的疑问。

循环中有一个循环。您可以很容易地看到,内部(右)1循环到外部(左)1的当前值。出现在第二行的
j=0
是从外部
for
循环的第二次迭代生成的。你真的应该在调试模式下运行这段代码,这样你就可以看到它是如何工作的,而不是发布到堆栈溢出。这将是一个学习如何使用调试器的好机会。“为什么第二行中的j=0的值,即使我们在第一行显示后增加它?”因为每次循环都是一个新的
j
。你想实现什么?
for (i = 0; i < 5; i++) {
   int j;
   for (j = 0; j < i; j++) {
   System.out.println("i = "+i+"\tj = "+j);
   }
}