全桥整流 发表于 2021-11-26 13:29:50

关于if和continue的疑问

#include <stdio.h>
int main()
{

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

为什么在i=2时可以进入sum +=i?
此时的i%2=0(if(0)不是类似于fluse吗),按道理不应该是不执行continue吗?

basketmn 发表于 2021-11-26 13:40:13

这个if语句相当于
{if(i%2!=0){continue;}
sum+=i};
就是说i为奇数,就跳出本轮循环,开始下一轮
当 i为偶数,就sum+i;

jackz007 发表于 2021-11-26 13:53:59

本帖最后由 jackz007 于 2021-11-26 14:27 编辑

#include <stdio.h>
int main(void)
{
      int sum = 0 , i ;
      for(i = 0 ; i < 10 ; i ++) {
                if (i % 2 ) continue ; // 如果 i 除以 2 余数不为 0 就直接结束本轮循环,准备下一次循环
                sum += i             ; // 所以,只有当 i 除以 2 余数为 0 的时候,才能执行到这里
      }
      printf("%d\n", sum)          ; // sum 是 0 ~ 9 当中,所有偶数的累加和
}
页: [1]
查看完整版本: 关于if和continue的疑问