質問

どのように繰り返し-まで、ループC ++でを作るのですか?一方またはループ用の標準とは対照的に。私はむしろ初めに比べて、各反復の終了時に状態を確認する必要があります。

役に立ちましたか?

解決

do
{
  //  whatever
} while ( !condition );

他のヒント

あなたがループの先頭に条件を確認したい場合は、単に標準whileループ上の条件を否定ます:

while(!cond) { ... }

あなたが最後にそれが必要な場合は、do ... whileループを使用して条件を否定ます:

do { ... } while(!cond);

あなたは反復までの構文をシミュレートするマクロを使用することができます。

#define repeat do
#define until(exp) while(!(exp))

たとえば、あなたはそれがグループ内の人々のすべてをカウントしたときに停止ループを持っているしたい場合。私たちは、値Xは、グループ内の人の数に等しくなるように検討する、とカウンターには、グループ内の人々のすべてをカウントするために使用されます。書き込むには、

  

しばらく(!条件)

のコードは次のようになります。

  

int型のx =人。

     

INTカウンタ= 0。

     

しばらく(X!=カウンタ)

     

{

     

カウンタ++;

     

}

     

の戻り0;

ただ、使用します:

do
{
  //enter code here
} while ( !condition );
whileが最後であるため、

それでは、これが行うことは、それは、最後にあなたの「条件をチェック」部分を移動しています。だから、唯一のちょうどあなたがそれをしたいかのように、コードを実行した後の状態をチェックします。

を繰り返し、単純なループをn回ループ...ループのconditionlessバージョンすることになっています。

#define repeat(n) for (int i = 0; i < n; i++) 

repeat(10) {
    //do stuff
}

あなたはまた、変数iを隔離するために、余分なbarceを追加することができ、さらに

#define repeat(n) { for (int i = 0; i < n; i++) 
#define endrepeat }

repeat(10) {
    //do stuff
} endrepeat;

[編集] 誰かが、このような表現として、値以外のものを渡すことについての懸念を掲載しました。ただ発現させる、後方実行するループに変更一度だけ評価される。

#define repeat(n) { for (int i = (n); i > 0; --i)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top