我在使用此代码时遇到问题。它可能很简单,但我仍然是初学者和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++;
}
编辑:对不起,我使用了System.out.println(j);但是我在循环中增加j之前打印了j
答案 0 :(得分:1)
在内循环的每次单次迭代结束之前,它会将 j 增加 1 。
j++; // +1
当它实际结束时,它会递减 3 。这使你总减少 2 。
for(...; ...; j = j-3) // -2
答案 1 :(得分:0)
在您的代码中,您在1
之后将j
添加到j++
(j = j - 3
)。
这是违反直觉的,您在技术上将其应用于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++;
}
答案 2 :(得分:0)
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++; //it's because of this, try to remove this and it will go down by 3
System.out.println(j); //if you will add this line, it will show j incremented by 1, for example 10 by 11 in the first iteration then 11 - 3 = 8 hence creates confusion from your side.
}
z++;
}
答案 3 :(得分:0)
想一想。内循环以j = 10开始。
在第一次迭代结束之前,j增加1(j ++)。 j = 11 。
在第一次迭代结束后,j减少3(j-3)。 j = 8 。
因此, j = 8 将被带到第二次迭代,这意味着对于每次下一次迭代,j都会减少 2 。