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
开始。 if
和 else
都完全相同。增加 i
并继续。
如果你使用一点逻辑,整个块可以减少到i++
(i = i % 3
没有效果,因为i < 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)
java里面的一个break是跳出一层for循环,还是可以跳出几层