为什么这个最后输出是20而不是25

int sum =0;
for (int i=0;i<10;i++){
if(i%2)continue
sum +=i;
}
printf ("%d\n",sum);

Q:为什么最后的输出是20?

第三行的 (i % 2) 相当于 i % 2 == 1 所以只加上了奇数,你要偶数的话要改成 (i % 2 == 0)

除 2有余数时 continue,即奇数时 continue,即偶数才参与下面的累加,就是 2+4+6+8=20

if(i%2) 这句等价于:if(i%2 != 0)

是这样吧
img


#include<bits/stdc++.h>
using namespace std;
int main()
{
    int sum=0;
    for(int i=0;i<10;i++)
    {
        if(i%2==0)  
        {
            continue;
        }
        sum+=i;
    }
    printf("%d\n",sum);
}

有余数时,if语句才不执行,sum语句才执行,2、4、6、8才执行,2+4+6+8=20