2017-12-30 15 views
-1

は、私たちは、クラスboolvoidそれぞれ何かを返す制限なしと三つの機能condnextfTこれは、 "for"の代わりの "while"と同じですか?

for(T k = T(); cond(); next()) 
    f(); 

{ 
T k = T(); 

while(cond()) { 
    f(); 
    next(); 
} 
} 

同じアルゴリズム話している定義されていると仮定すると?

+1

C++の本の説明には、あなたがよく理解していない 'for'ステートメントの仕組みが具体的にありますか? –

+2

私は答えを掲示するだろうが、 "はい"短すぎます。 – melpomene

+0

@melpomene「短い回答」の残りの部分は、文書や抜粋へのリンクで簡単に記入することができます。 – user2864740

答えて

1

もちろんです。 for (init; cond; step) {statements}構文は

{ 
    init; 
    while (cond) { 
     statements; 
     step; 
    } 
} 

に同等であるので、彼らは(特定の場合に可読性を除く)完全に交換可能です。

最初の行と最後の行のスタンドアロンブレースの目的は、初期化された変数の範囲をループ自体に制限することです。

0

どちらの場合も、クラスオブジェクトを初期化した後で、チェック条件とそれに続く次のステップが同じように配置されるため、両方ともFORとWHILE相互変換可能である。

関連する問題