do…while C でループする

do…while C でループする

C 言語のループは、指定された条件が満たされるまでコードの一部を繰り返すために使用される制御フロー ステートメントです。の do-while ループ は C の 3 つのループ ステートメントの 1 つで、その他は while ループと for ループです。これは主に、配列、ベクトル、およびその他のデータ構造を走査するために使用されます。

C の do…while ループとは何ですか?

C にいる間に…してください 指定された条件が満たされるまでコードの一部を繰り返すために使用されるループ ステートメントです。それは、 終了制御ループまたはテスト後のループ ここで、ループ本体の実行後にテスト条件がチェックされます。このため、do…while ループ内のステートメントは、条件に関係なく、常に少なくとも 1 回実行されます。

C での do…while ループの構文

 do { // body of do-while loop } while ( condition ); 

C で do…while ループを使用する方法

次の例は、C プログラミング言語での do…while ループの使用法を示しています。

C




// C Program to demonstrate the use of do...while loop> #include> int> main()> {> > // loop variable declaration and initialization> > int> i = 0;> > // do while loop> > do> {> > printf> (> 'Geeks '> );> > i++;> > }> while> (i <3);> > return> 0;> }>

出力

Geeks Geeks Geeks 

do…while ループはどのように機能しますか?

do while ループ構文

do while ループの構文構造

do…while ループの動作については以下で説明します。

  1. プログラム制御が最初に do…while ループに到達すると、 ループの本体が最初に実行され、次にテスト条件/式がチェックされます。 、テスト条件が最初にチェックされる他のループとは異なります。この特性により、do…while ループは終了制御ループまたはポストテスト ループとも呼ばれます。
  2. 試験条件を次のように評価した場合 真実 プログラム制御が開始に移ります ループと本体がもう一度実行されます。
  3. 上記のプロセスは、テスト条件が真になるまで繰り返されます。
  4. 試験条件を次のように評価した場合 間違い、 プログラム制御は次のステートメントに進みます do…while ループの後。

C の while ループと同様、初期化と更新は do…while ループ構文の一部ではありません。これをループの前とループ内でそれぞれ明示的に行う必要があります。

以下のフローチャートは、C の do…while ループの流れを視覚的に表したものです。

C do…while ループのフローチャート

C の do...while ループのフローチャート

C での do…while ループのフローチャート

C の入れ子になった do…while ループ

他のループと同様に、1 つの do…while ループを別のループにネストすることもできます。以下の C プログラムを使用して説明します。

C での入れ子になった do…while ループの例:

C




// C Program to demonstrate the nesting of do...while loop> #include> int> main()> {> > // declaring loop variables> > int> i = 0, j;> > int> count = 0;> > // outer loop starts> > do> {> > j = 0;> > // inner loop starts> > do> {> > printf> (> '%d '> , count++);> > j++;> > }> while> (j <3);> > // inner loop ends> > printf> (> ' '> );> > i++;> > }> while> (i <3);> > // outer loop ends> > return> 0;> }>

出力

0 1 2 3 4 5 6 7 8 

C のネストされたループの詳細については、この記事「C のネストされたループと例」を参照してください。

C での do…while ループの例

例 1. 最初から条件が false の場合の do…while ループの動作を示す C プログラム。

C




// C Program to demonstrate the do...while loop behaviour> // when the condition is false from the start> #include> #include> int> main()> {> > // declaring a false variable> > bool> condition => false> ;> > do> {> > printf> (> 'This is loop body.'> );> > }> while> (condition);> // false condition> > return> 0;> }>

出力

This is loop body. 

ご覧のとおり、開始時に条件が false であっても、ループ本体は 1 回実行されます。これは、do…while ループでは本体を通過した後に条件がチェックされるため、コントロールが開始時に、

  1. ループ本体を通過します。
  2. 本体内のすべてのステートメントを実行します。
  3. false であることが判明した条件をチェックします。
  4. その後、ループを終了します。

例 2. do…while ループを使用して N の九九を出力する C プログラム

次の例は、N の九九を出力するための do…while ループの使用法を示しています。

C




// C Program to print multiplication table using do...while> // loop> #include> int> main()> {> > int> N = 5, i = 1;> > do> {> > printf> (> '%d x %d = %d '> , N, i, N * i);> > }> while> (i++ <10);> > return> 0;> }>

出力

5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25 5 x 6 = 30 5 x 7 = 35 5 x 8 = 40 5 x 9 = 45 5 x 10 = 50 

C の while と do…while の違い

次の表に、重要な事項を示します。 while と do…while ループの違い Cで。

while ループ

do…while ループ

テスト条件を確認します ループ本体が実行される前。 テスト条件を確認します 本体を実行した後。
条件が false の場合、 本体は実行されません 一度もありません。 の本体 do…while ループが少なくとも 1 回実行される 条件が false の場合でも。
の一種です 事前にテストされたループまたはエントリ制御されたループ。 の一種です 事後テストまたは終了制御ループ。
セミコロンは必要ありません。 最後にセミコロンが必要です。

これらの違いについて詳しくは、「C、C++、Java における while ループと do-while ループの違い」の記事を参照してください。

結論

結論として、C で唯一の終了制御ループである do…while ループの使用もコードの特定の部分を反復しますが、その動作方法が while ループや for などの開始制御ループとは異なります。ループ。これは、循環リンク リストを走査する場合など、ループ本体内のステートメントを少なくとも 1 回実行する必要がある場合に便利です。

C do…while ループに関する FAQ

1. C には何種類のループがありますか?

年: C言語には3種類のループがあります。

  1. for ループ
  2. while ループ
  3. do…while ループ

2. エントリ制御ループまたは事前テストされたループとは何ですか?

年: エントリ制御ループまたは事前テストされたループとは、ループが 本体を実行する前に状態がチェックされます ループの。

3. 終了制御ループまたは事後テストループとは何ですか?

年: 終了制御ループまたはテスト後のループとは、 プログラム制御はループ条件をチェックする前にループ本体に来ます。

4. 少なくとも 1 回は実行されることが保証されているループはどれですか?

年: do…while ループ 終了制御ループの一種であるため、ループ本体内のステートメントを少なくとも 1 回実行することが保証されます。

5. 本体にステートメントが 1 つしかない場合、C の do…while ループ構文の中括弧をスキップできますか?

回答: いいえ。 C の do…while 構文では、while ループや for ループとは異なり、ステートメントが 1 つしかない場合でも中括弧をスキップすることはできません。

6. do…while ループを使用して C で無限ループを作成するにはどうすればよいですか?

年: C で無限ループを作成するには、次のように指定します。 常に真となる条件 ループ条件として。以下のプログラムは、その方法を示しています。

C




// C Program to create a infinite loop using do...while loop> // in C> #include> int> main()> {> > // infinite loop> > do> {> > printf> (> 'gfg '> );> > }> while> (1);> // always 1 ~ true> > return> 0;> }>

出力

gfg gfg gfg gfg gfg gfg gfg .... (infinite) 

関連記事: