forloop增量不理解

时间:2016-04-30 11:46:19

标签: java for-loop

for(int i=0;i<=3;i++)
{
    for(int j=1;j<=2*i-1;j++)
        System.out.println(i);
}

第一个循环后i的值仍应为0,但会增加到1。 这是我不清楚代码的地方。谁能解释一下呢?

3 个答案:

答案 0 :(得分:2)

i0时,内循环(基于j的值的循环)不会运行。条件的计算结果为j<=-1,因此永远不会输入循环,并且永远不会执行System.out.println语句。仅在第二个循环上,当i1时,第二个循环才有机会执行。

答案 1 :(得分:1)

在内循环中,需要满足条件“for(int j = 1; j <= 2 * i-1; j ++)”,在i = 0的情况下,该循环不会在第一次迭代中执行因此它将进入第二次迭代,即i = 1.

答案 2 :(得分:0)

第一次迭代

for(int i=0;i<=3;i++)  i = 0,true,
{
for(int j=1;j<=2*i-1;j++)    j=1 , j<=-1 which is false . so it is skipping 
    System.out.println(i);  prints nothing 
}

第二次迭代

for(int i=0;i<=3;i++)  i = 1,true,
{
for(int j=1;j<=2*i-1;j++)    j=1 , j<=1 which is true. so now it runs loop inside 
    System.out.println(i); so now prints 1
}

如果你是一个开始循环。始终绘制trace table dry runs