在for循环和if条件中继续声明

时间:2011-10-16 08:09:57

标签: c++ c continue

我有以下代码片段,我得到的输出是4.请解释我是否需要i = 2或0.我很困惑。输出是如何4?

int main() {  
   int i=2;
   for(i=0;i<2;i++) {
      i=i%3;
      if(i==2) {
          i++;
          continue; }
      else
          ++i;  
   }
   printf("%d",i); 
}

2 个答案:

答案 0 :(得分:6)

循环以i = 0开头。 ifelse都完全相同。增加i并继续。
如果使用一点逻辑,整个块可以减少到i++i = i % 3i < 2无效。

使用您发布的代码无法获得4

答案 1 :(得分:0)

您发布的程序的输出不能为4,因为在循环中断时,i的值为2,而不是4循环将完全运行

此外,您的代码永远不会进入if块,因为条件为i==2,在for循环内永远不会为真,因为那时循环将被退出。

所以你的代码等同于:

int main() {  
   int i=2;
   for(i=0;i<2;i++) {
      i++;
   }
   printf("%d",i); 
}