Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么嵌套循环的起始值最初减少了2?_Java - Fatal编程技术网

Java 为什么嵌套循环的起始值最初减少了2?

Java 为什么嵌套循环的起始值最初减少了2?,java,Java,我的代码有问题。这可能很简单,但我还是一个Java初学者。嵌套的for循环,当我打印出来时是这样的:10,8,6,4,2,我只是想知道为什么它会下降2而不是3? 这是我的密码 int z = 0; for(int x = 0; x < 10; x = x+2){ for(int j = 10; j >= 1; j = j-3){ System.out.println(j); z++; j++; } z+

我的代码有问题。这可能很简单,但我还是一个Java初学者。嵌套的for循环,当我打印出来时是这样的:10,8,6,4,2,我只是想知道为什么它会下降2而不是3? 这是我的密码

int z = 0;

for(int x = 0; x < 10; x = x+2){
    for(int j = 10; j >= 1; j = j-3){

       System.out.println(j);
        z++;
        j++;   
    }

    z++;
}
intz=0;
对于(int x=0;x<10;x=x+2){
对于(int j=10;j>=1;j=j-3){
系统输出println(j);
z++;
j++;
}
z++;
}

编辑:对不起,我用了System.out.println(j);但是我在循环中增加j之前打印了j

在内部循环的每次迭代结束之前,它将j增加1

j++; // +1
for(...; ...; j = j-3) // -2
当它实际结束时,它会递减3。这将使总减量2

j++; // +1
for(...; ...; j = j-3) // -2

在代码中,在
j=j-3
之后将
1
添加到
j
j++
)。 这是违反直觉的,从技术上讲,您将其应用于
j
j=j-2

相反,要这样做:

int z = 0;
for(int x =0; x<10; x = x +2){
    for( int j = 10; j>=1; j = j-3)
        z++;
    z++;
}
intz=0;
对于(int x=0;x=1;j=j-3)
z++;
z++;
}
intz=0;
对于(int x=0;x<10;x=x+2){
对于(int j=10;j>=1;j=j-3){
系统输出println(j);
z++;
j++;//正是因为这个,试着去掉这个,它会下降3
System.out.println(j);//如果您要添加这一行,它将显示j增加1,例如在第一次迭代中是10乘以11,然后是11-3=8,因此您会感到困惑。
}
z++;
}

想想看。内环从j=10开始

在第一次迭代结束之前,j增加1(j++)j=11
在第一次迭代结束后,j减小3(j-3)j=8


因此,j=8将被带到第二次迭代,这意味着对于每一次下一次迭代,j将减少2

j=j-3
j++
j++
表示
j=j+1我在这里没有看到任何可以打印任何内容的内容。这就是全部代码吗?我正在寻找一个Syso方法。请发布完整的代码。这只是我的主要方法!我的意思是当我在增量之前打印j时@是的,没错。请注意这里的生命周期。@Razar正如Sparta指出的那样,
j=j-3
直到与for loopOh关联的代码块结束时才应用!这是有道理的,这会发生在所有四个循环中吗?我以前从来没有真正注意过@Razar
用于
循环,是的。
j++; // +1
for(...; ...; j = j-3) // -2