为什么嵌套循环开始减少2?

时间:2015-12-16 01:46:08

标签: 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++;
}
编辑:对不起,我使用了System.out.println(j);但是我在循环中增加j之前打印了j

4 个答案:

答案 0 :(得分:1)

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

j++; // +1

当它实际结束时,它会递减 3 。这使你总减少 2

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

答案 1 :(得分:0)

在您的代码中,您在1之后将j添加到j++j = j - 3)。 这是违反直觉的,您在技术上将其应用于jj = 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