どのように繰り返し-までC ++でループを作るのですか?
-
21-08-2019 - |
質問
どのように繰り返し-まで、ループ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)
所属していません StackOverflow