第14天.....发现写for语句有一个问题,为什么语句2判断假了以后,语句3还会执行?

图片说明

            R为什么会是3?而不是2?,输入17的话,(17-1)/2=8,
            k和sum都是8,按道理就结束了呀。为啥R还会++啊?

因为for循环先执行R++,然后再判断sum < k,所以当你看到条件不满足的时候++就会多1次。
你的代码等价:
R = 1;
while (sum < k)
{
sum+= 2 * R + 1;
R++;
}

如果问题得到解决请点下我回答右边的采纳,另外还有1个问题
https://ask.csdn.net/questions/702478

for循环中R++并不是立即+1而是你的for循环一次结束时才会+1,所以当你第二次执行开始R==2,之后 sum+=2*R+1 sum=8 k=8这时结束条件达成,这一次循环结束,R会再+1 R==3