C ++比较和减少变量

时间:2011-10-11 20:48:58

标签: c++ variables comparison

 if(y-- > 0 && matriz[x][y--]!=9 && matriz[x][y--]!=0)

当我这样做时,我的变量 y 不会减少,对吧?我可以做这个比较 y--> 0

想象一下,我有y = 0,我想比较是否-1> 0

由于

3 个答案:

答案 0 :(得分:5)

假设所有测试都通过,您的代码实际上与此相同:

if (y > 0)
{
    y--; // post-decrement

    if (matriz[x][y] != 9)
    {
        y--; // post-decrement

        if (matriz[x][y] != 0)
        {
            y--; // post-decrement

            // all true
        }
    }
}

如果有任何失败,你仍然会减少(等价将在else子句中),但为了简洁我省略了。

希望这足以澄清。我发现它非常笨拙,如果y < 2一开始你会得到一个负面的索引,这可能是一件坏事。

答案 1 :(得分:1)

如果y=0,则不会评估您的最后两个条件,因为第一个条件将失败。

如果您希望第一次比较为-1>0,则需要减少前缀:--y > 0

答案 2 :(得分:0)

是的,你可以进行比较。你为什么要写这样的代码?请写下可以读取的内容,这是可以理解的。