我有以下代码片段,我得到的输出是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);
}
答案 0 :(得分:6)
循环以i = 0
开头。 if
和else
都完全相同。增加i
并继续。
如果使用一点逻辑,整个块可以减少到i++
(i = i % 3
后i < 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);
}