Java 为什么嵌套循环的起始值最初减少了2?
我的代码有问题。这可能很简单,但我还是一个Java初学者。嵌套的for循环,当我打印出来时是这样的:10,8,6,4,2,我只是想知道为什么它会下降2而不是3? 这是我的密码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+
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