我有这段简单的代码,但我不明白这部分:sum += i++
.
int num1 = 5;
int sum = 0;
if (num1 < 100) {
for (int i = 0; i < num1; i++)
sum += i++; //?
System.out.println("sum = " + sum);
} else {
sum = -1;
}
System.out.print(sum);
我得到的结果是 6,我不明白如何以及为什么。
最佳答案
sum += i++
相当于 sum = sum + i; i = i + 1
这会将您的代码转换为:
int num1 = 5;
int sum = 0;
if (num1 < 100) {
for (int i = 0; i < num1; i++) //<-- i is incremented
sum = sum + i; //<-- sum gets incremented by i here
i = i + 1; //<-- i is incremented again, increment/loop-cycle ratio = 2
System.out.println("sum = " + sum);
} else {
sum = -1;
}
System.out.print(sum);
i
每个循环周期增加 2 并且 sum
增加 i
每个循环周期。结果是 6,因为:
您开始循环,其中
i
是 0 和 sum
是 0。在第一个循环周期
sum
递增 0,i
增加 2 (2)。在第二个循环周期中,
sum
增加 2 (2) 和 i
增加 2 (4)。在第三个循环周期,
sum
增加 4 (6) 和 i
增加 2 (6)。此时,
i
不再满足条件i < num1
哪里num1
是 5,并结束循环。
关于java - 这里发生了什么 : sum += i++;?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67525682/