1

ここでの私の最初の投稿であり、C++を使用するのは初めてです。インターネットから入手したコードを見ていますが、質問があります。

次のようなforループがあります。

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

何をしているのかはわかりますが、状態がわかりません。

この形式によるとfor ( init; condition; increment )t--は条件ですが、あまり意味がありません。それが増分だと思いますt--が、なぜ2番目のパラメーターなのですか?

次のようなものではありませんfor (cin >> t; ;t--);か?

4

2 に答える 2

2

--演算子は「デクリメントアンドリターン」演算子です。ポストデクリメントとして使用されるため、値を返しt、デクリメントします。

C ++では、0とは異なるものはすべて、そのtrue逆なので、基本的には次のようになります。

t == 0

もちろん、の場合は状況が異なり--tます。これは、前に値をデクリメントしてから返すためです(1回の反復でループが終了します)。

于 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 に答える