基本循环问题,包括while和for

时间:2018-12-13 17:17:55

标签: java for-loop while-loop

我不明白为什么我在这里等于3. for循环中的条件部分适用于n1 = 4 n2 = 2和n1 = 3 n2 = 3。我不等于2吗?详细的逐步说明确实有帮助。

public static void main(String[] args) {
    int n1 = 4;
    int n2 = 2;
    int i = 0;
    while (n2 <= 4) {
        for (; n1 >= n2; n1--)
            i++;
    n2++;
    }
    System.out.println(i);
    System.out.println(n2 + " " + n1);
}

2 个答案:

答案 0 :(得分:2)

当您的代码第一次在while循环中执行时,它直接进入for循环并增加i的值三倍。因为您的for循环会执行到n1变得比n2低为止。

for循环的第一步

4 >= 2 (n1 >= n2)
    increase i (i becomes 1)
    loop decreases n1 (n1 becomes 3)
3 >= 2 (n1 >= n2)
    increase i (i becomes 2)
    loop decreases n1 (n1 becomes 2)
2 >= 2 (n1 >= n2)
    increase i (i becomes 3)
    loop decreases n1 (n1 becomes 1)

当n1变为1时,它退出for循环。while循环中的第二次迭代,因为n1低于n2,所以没有进入for循环。

所以您的变量i的值为3。

答案 1 :(得分:0)

如果是:for (; n1 > n2; n1--),那么我就是2