这个循环在C中有什么问题?

时间:2012-02-15 21:31:46

标签: c loops

int i;
i=0;
for (i=0;i>2;i++)
    {
     repeat((3),"|",var);
     printf("\n");          
    }

出于某种原因,它会进入“for”并跳过它。我试图将int i置于for之外,甚至将其初始化为for,并且在调试中它为零。我需要它做的就是遍历这段代码两次。

5 个答案:

答案 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 ++)