int i;
i=0;
for (i=0;i>2;i++)
{
repeat((3),"|",var);
printf("\n");
}
出于某种原因,它会进入“for”并跳过它。我试图将int i
置于for之外,甚至将其初始化为for,并且在调试中它为零。我需要它做的就是遍历这段代码两次。
答案 0 :(得分:5)
变化:
for (i=0;i>2;i++)
为:
for (i=0;i<2;i++)
您正在测试> 2
是否会失败,因此它永远不会进入循环。
答案 1 :(得分:2)
这是因为你的循环条件:i > 2
变量i
它不大于2,因此条件i > 2
将评估为0(FALSE)
希望有所帮助
答案 2 :(得分:1)
for (i=0;i>2;i++)
你想要
for (i=0;i<2;i++)
否则您的for
循环体将永远不会被执行。
答案 3 :(得分:1)
所以让我们分解一个for循环。 (piece1; piece2; piece3)有三个部分
piece1 =设置变量,这将在第一次循环运行时发生一次
piece2 = while条件为true,继续循环
peice3 =在每次迭代结束时执行此操作。
所以你的循环现在说首先设置i = 0,而我大于2(你刚才说它不是)...此时你的编译器已经跳过了,因为条件永远不会真。
因此,测试==也不起作用,因为这将使它循环而i等于2,这将永远不会成立,因为你正在更新i的唯一地方是在循环内。中间条件不是休息条件,它是一个延续条件。
答案 4 :(得分:-1)
将你的循环改为for(i = 0; i&lt; 2; i ++)