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