对于循环值省略 这是我第一次在这里发表文章,也是我第一次用C++。我正在看一些从网上得到的代码,但我有一个问题

对于循环值省略 这是我第一次在这里发表文章,也是我第一次用C++。我正在看一些从网上得到的代码,但我有一个问题,c++,C++,它有一个for循环,如下所示: for(cin >> t;t--;) 我知道它在做什么,但我不知道情况是什么 根据这种格式,对于(init;condition;increment),t--是条件,但没有多大意义。我认为t--是增量,但为什么它是第二个参数 它不应该是这样的:for(cin>>t;;t--)?该--运算符是一个“减量和返回”运算符。由于它用作后减量,因此它返回t,然后减量该值 C++中的所有与0不同的是Trime,反之亦然,所以基本上等同于 t == 0 当然,在-

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

for(cin >> t;t--;)
我知道它在做什么,但我不知道情况是什么

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

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

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

C++中的所有与0不同的是Trime,反之亦然,所以基本上等同于

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

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

for(
    <runs once before loop>;
    <check before every iteration, loop if true/non-zero>;
    <run after every iteration>)
用于(
;
;
)

t--
返回
t
并同时设置
t=t-1
。你在想什么。因此,最后的减量将是1到0的减量,它返回1,为
t=0
.Hmmm继续最后一次循环,因此t--在条件位置,我们都在减量它的值并评估条件?它没有被评估,它被返回。这是一个数值,但是C++中的数字确实是一个条件。好吧,我想我明白了。它基本上与:for(t=input;t>0;t--);对吗?@Wug最后一次减量将是0到未定义或类型的最大值(如果无符号)。不,@bex,这是不一样的<代码>t--
在循环体的末尾执行,而不是在开始执行。这与(cin>>t;t!=0;){t--;}t--的
相同