有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我不明白为什么我在这里等于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) 个答案

  1. # 1 楼答案

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

  2. # 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时,它就会退出循环。在while循环的第二次迭代中,它不会进入for循环,因为n1低于n2

    所以你的变量i的值是3