如果语句被跳过C ++

时间:2013-03-13 20:39:31

标签: c++ if-statement

for (i=0;i<3;i++)
{
    if(z == 3)
    {
        z = 0;
    }
    z++;
    if(!(ar[i][z] == 'X') & (z < 3))
    winrow == 0;
}

当我逐行调试程序时,跳过第二个if语句。 一切都已初始化,这只是一个片段。 它之所以这么做的原因是什么?

4 个答案:

答案 0 :(得分:3)

winrow == 0是一个没有副作用的拼写错误,因此无论if子句是否为真,都无法执行。

答案 1 :(得分:1)

你说的是:

winrow == 0;
在你的if语句的正文中

。这个陈述什么都没有,它没有分配给任何东西,它没有副作用。因此编译器可能(优化时)将跳过它。您可以说winrow = 0;,将0分配给winrow

答案 2 :(得分:0)

可能你的病情错了。这是你试图得到的吗?

if (ar[i][z] != 'X' && z < 3)

答案 3 :(得分:0)

代码的第二部分没有做任何事情。

winrow == 0

检查winrow是否等于0,并且只要您点击括号,该语句就会超出范围。