for循环和if条件中的continue语句[关闭]

Posted

技术标签:

【中文标题】for循环和if条件中的continue语句[关闭]【英文标题】:continue statement inside for loop and if condition [closed] 【发布时间】:2011-10-16 08:09:56 【问题描述】:

我有以下代码 sn-p,我得到的输出是 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); 

【问题讨论】:

除教育目的外,切勿编写此类代码! 什么意思?您声明您的 int i 并为其分配值 2,然后在下一行为它分配 0(for 循环的初始化部分)。你如何得到 4 作为输出虽然超出了我的范围,但我得到了 2。 如果你得到 4,那么你应该改变你的编译器。 除了 for 语句中的 i++ 之外,更新循环内的 for 循环索引 (i) 是解决非工作代码的可靠方法 我正在使用 GCC 4.4.5 并且它只将 o/p 设为 4。 【参考方案1】:

循环以i = 0 开始。 ifelse 都完全相同。增加 i 并继续。 如果你使用一点逻辑,整个块可以减少到i++i = i % 3 没有效果,因为i &lt; 2)。

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

【讨论】:

当我在 gcc 中执行此代码时,我得到的 o/p 仅为 4。你可以检查一下。 @BabannaDuggani:gcc (GCC) 4.6.1 20110819 (prerelease) 的输出是 2。IMO 这充其量是 PEBKAC 朋友们,真的很抱歉,在for循环中是i 【参考方案2】:

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

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

所以你的代码等价于:

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

【讨论】:

当我在 gcc 中执行此代码时,我得到的 o/p 仅为 4。你可以检查 @BabannaDuggani:你重新检查你的程序。比较你发布的这个程序,和你在你的电脑上运行的那个程序。看看是不是一模一样! 朋友们,真的很抱歉,在for循环中是i

以上是关于for循环和if条件中的continue语句[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Python基础语法—— 条件语句(if)+循环语句(for+while)

shell-跳出循环break和continue

For 循环中的 If vs Continue 语句

java里面的一个break是跳出一层for循环,还是可以跳出几层

循环语句,beark语句和continue语句,请举几个例子

Java中的结构语句