我有兩個片段:這兩個while循環等價嗎?
while (indent-- > 0)
{
out << " ";
}
while (indent > 0)
{
indent -= 1;
out << " ";
}
據我所看到的,沒有任何不確定的行爲在第一個片段回事(見here)。
我的問題是:這兩個片段是否相等?
我不太確定,因爲-=
運算符的優先級高於比較運算符,因此應該先在第一個片段中執行。然而,第二個片段僅在比較後才執行此操作。
優先級在兩個片段中都是不相關的。具有多個運算符的唯一語句是'indent-> 0',並且沒有矛盾。 '(indent--)> 0'是解析它的唯一方法,'indent--(> 0)'或'indent( - > 0)'是無效的。 – 2013-03-12 08:47:21