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 ループに到達すると、 ループの本体が最初に実行され、次にテスト条件/式がチェックされます。 、テスト条件が最初にチェックされる他のループとは異なります。この特性により、do…while ループは終了制御ループまたはポストテスト ループとも呼ばれます。
- 試験条件を次のように評価した場合 真実 、 プログラム制御が開始に移ります ループと本体がもう一度実行されます。
- 上記のプロセスは、テスト条件が真になるまで繰り返されます。
- 試験条件を次のように評価した場合 間違い、 プログラム制御は次のステートメントに進みます do…while ループの後。
C の while ループと同様、初期化と更新は 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
catchブロックJavaを試してください
// 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 ループでは本体を通過した後に条件がチェックされるため、コントロールが開始時に、
- ループ本体を通過します。
- 本体内のすべてのステートメントを実行します。
- false であることが判明した条件をチェックします。
- その後、ループを終了します。
例 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;> }> |
>
ジャバFX
>出力
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種類のループがあります。
- for ループ
- while ループ
- 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)>