0

我有以下代码片段,我得到的输出是 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); 
}
4

2 回答 2

6

循环以 i = 0. theif和 the elseto 完全一样。增加i并继续。
如果您使用一点逻辑,则可以将整个块简化为i++( i = i % 3has no effect since i < 2)。

无法4使用您发布的代码。

于 2011-10-16T08:13:14.073 回答
0

输出不能4用于您发布的程序,因为到循环中断时,值i将是2,而不是4并且循环将只运行一次

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

所以你的代码相当于这个:

int main() {  
   int i=2;
   for(i=0;i<2;i++) {
      i++;
   }
   printf("%d",i); 
}
于 2011-10-16T08:17:08.063 回答