この記事では「 【C言語入門】while文とdo-while文の使い方(break、continue文) 」について、誰でも理解できるように解説します。この記事を読めば、あなたの悩みが解決するだけじゃなく、新たな気付きも発見できることでしょう。お悩みの方はぜひご一読ください。. C言語のwhile文とdo-while文の使い方。回数が決まらない繰り返しを解説。前判定と後判定の違い、無限ループ対策も。
do-while文 (英: do-while statement) は、C言語および類似のプログラミング言語において繰り返し(ループ)の制御構造を記述するための文 (statement) のひとつである。C言語の規格では「do文」と呼ばれる。ループ本体 (loop body) の処理を一度実行した後、さらに継続条件として指定された式(制御式)を評価した値が真である間、ループ本体を繰り返し実行する。while文との違いは、ループに入る前の条件の評価が無く最初に必ず1回はループ本体が実行されることである。
なお、C言語およびC++ではゼロに等しい値を偽、ゼロ以外を真とみなす。したがって、整数型だけでなく、任意のポインタ型や浮動小数点数型の式も制御式として記述可能である。C/C++以外のブーリアン型をサポートするほとんどの言語では通例、制御式にはブーリアン型の式のみを記述できる。
構文
C言語および類似の言語では以下のような構文である。
このループの実行は、次のような手順となる。
- 「文」を実行する。
- 「条件」を評価する。
- 「条件」が真ならば、手順の最初に戻る。「条件」が偽ならば、ループを終了する。
「条件」がはじめから偽の場合も、「文」は一度実行される。
ループ本体が複数の文からなる場合、ブロック(複文)を使う。
C言語のプログラム例:
この例では、最初に x += 1 を実行し x == 1 となる。次に条件の x < 3 をチェックする。条件は真であり、コードブロックを再度実行する。変数 x がループ脱出条件に合致する(x >= 3 になる)まで、コードの実行と条件のチェックを繰り返す。
C言語に似ていない言語では、異なった構文で同様の機能を持つものもある(while文の記事も参照)。例えばPascalでは、”repeat-until” 文である。ただし、制御式として継続条件ではなく終了条件(真のときループを終了)を記述する。
なお、Fortran (Fortran 90以降) にもdo-while文はあるが、これはC言語のwhile文と同等であり、制御式を前置する。以下の例では、ループ本体は一度も実行されない。
分岐文
while文と同様、do-while文においてもbreak文などの分岐文を使用できる。なお、continue文はループの途中から、ループ本体の最後に飛び、do-while文の場合には条件の評価となる。
例
以下の、各言語によるdo-while文あるいは同様の制御を利用したプログラムは、与えられた数の階乗を計算する。
Ada
Adaの例。
Visual Basic .NET
Visual Basic .NETの例。
C言語とC++
C言語とC++の例。
C#
C#の例。
D言語
D言語の例。
Java
Javaの例。
Pascal
Pascalの例。
C/C++のマクロにおける利用
C/C++におけるdo-while文の特殊な用法に、最後にセミコロンが付く構文であることを利用し、展開結果にブロックを含むマクロの呼び出しを関数のように見えるものにする、というイディオムがある。
これを利用することで、「セミコロンを付けてはいけないマクロ」という、扱いが面倒なものを作らずにすむ。
脚注
注釈
出典
関連項目
- while文
- for文
外部リンク
- JIS X 3010:2003「プログラム言語C」(日本産業標準調査会、経済産業省)
do/while文 トモジブログ
【C】dowhile文の使い方についてわかりやすく詳しく解説
初心者から上級者まで完全マスター!C++のdowhile文の使い方5選 Japanシーモア
dowhile文とは IT用語辞典 eWords
【C言語】 dowhile文入門|while文との違いと初心者がハマる落とし穴 エーテリア
do/while文 トモジブログ
【C言語】 dowhile文入門|while文との違いと初心者がハマる落とし穴 エーテリア
【初心者向け】javaのfor・while文の書き方│かじりーニョ
7.4 dowhile文 神田ITスクール
【C言語】 dowhile文入門|while文との違いと初心者がハマる落とし穴 エーテリア
【C言語】 dowhile文入門|while文との違いと初心者がハマる落とし穴 エーテリア
【C言語】 dowhile文入門|while文との違いと初心者がハマる落とし穴 エーテリア
海城中学高等学校 情報科
【Java入門】while文・for文・do while文繰り返し処理の基礎と応用 TaroTech
c do while文, c言語 for文とdo whileの違い VBSAL
【Java入門】while文・for文・do while文繰り返し処理の基礎と応用 TaroTech
【C言語】while と do while の違い だえうホームページ
【C言語】do〜while文の使い方【超わかりやすく解説】 tetoblog
Do While C言語 Do While C言語 無限 VIENJW
dowhile文 Javaちょこっとリファレンス
C言語のdo while文について、基本構文、while文との違い、入力チェック、breakとcontinue、無限ループの注意点をコード例付きで解説します。. C/C++における繰り返し処理 C/C++における繰り返し処理を記述するために、 for文、while文、do~while文 という三種類の文が用意されています。本記事ではそれらについて解説いたします。 for文 for文の書式 for文は、 {}で囲まれた処理を、指定した条件が満たされるまで繰り返す処理 です。 繰り返し.