这是我在这里的第一篇文章,也是我第一次使用 C++。我正在查看从 Internet 获得的一些代码,但我对此有疑问。
它有一个 for 循环,如下所示:
for(cin >> t;t--;)
我明白它在做什么,但我不明白它的条件是什么。
根据这种格式,for ( init; condition; increment )
,t--
是条件,但没有多大意义。我认为这t--
是增量,但为什么它是第二个参数?
不应该是这样的:for (cin >> t; ;t--);
?
这是我在这里的第一篇文章,也是我第一次使用 C++。我正在查看从 Internet 获得的一些代码,但我对此有疑问。
它有一个 for 循环,如下所示:
for(cin >> t;t--;)
我明白它在做什么,但我不明白它的条件是什么。
根据这种格式,for ( init; condition; increment )
,t--
是条件,但没有多大意义。我认为这t--
是增量,但为什么它是第二个参数?
不应该是这样的:for (cin >> t; ;t--);
?
该--
运算符是一个“递减和返回”运算符。由于它用作后减量,因此它返回t
然后减量该值。
在 C++ 中,所有与 0 不同的东西都是true
,反之亦然,所以基本上它相当于
t == 0
当然,在 的情况下情况会有所不同--t
,因为它会在之前递减值然后返回它(它会提前一次迭代结束循环)。
for ( init; condition; increment )
只是使用 for 循环的推荐方式。循环工作的真正方式是:
for(
<runs once before loop>;
<check before every iteration, loop if true/non-zero>;
<run after every iteration>)