1

这是我在这里的第一篇文章,也是我第一次使用 C++。我正在查看从 Internet 获得的一些代码,但我对此有疑问。

它有一个 for 循环,如下所示:

for(cin >> t;t--;)

我明白它在做什么,但我不明白它的条件是什么。

根据这种格式,for ( init; condition; increment ),t--是条件,但没有多大意义。我认为这t--是增量,但为什么它是第二个参数?

不应该是这样的:for (cin >> t; ;t--);

4

2 回答 2

2

--运算符是一个“递减和返回”运算符。由于它用作后减量,因此它返回t然后减量该值。

在 C++ 中,所有与 0 不同的东西都是true,反之亦然,所以基本上它相当于

t == 0

当然,在 的情况下情况会有所不同--t,因为它会在之前递减值然后返回它(它会提前一次迭代结束循环)。

于 2013-03-21T02:02:44.173 回答
0

for ( init; condition; increment )只是使用 for 循环的推荐方式。循环工作的真正方式是:

for(
    <runs once before loop>;
    <check before every iteration, loop if true/non-zero>;
    <run after every iteration>)
于 2013-03-21T02:05:06.127 回答