while文(フォワイルぶん)はプログラミング言語において条件が真の間だけ与えられた文の実行を繰り返すループを記述するための文である。
ループの記述には、前置判定と後置判定の2つがある。前置判定は最初に条件式の評価を行い、真であればループ内の処理を行う。C言語などでは while(式) 文 が前置判定となる。後置判定は最初にループの処理を行い、その後に条件式の評価を行う。同様にCでは do 文 while(式); が後置判定となる。両者の違いは、前置判定では条件が偽であれば一度もループ内の処理を行わないの対して、後置判定では最低1回はループの内の処理が行われる点にある。
目次
1 文法
1.1 Cおよびそれに類する言語の場合
1.1.1 例文
1.2 Pascalの場合
1.3 Visual Basicの場合
2 関連項目
//
C, C++, C#, D, Java, Perlなどでは基本的な構文は以下のようになる。while(条件) { 文}
このループは次のような手順で実行される。
条件を評価する。条件が偽ならば、ループを終了する。
真文を実行する。
条件の評価に戻る。
条件がはじめから偽の場合は、真文は一度も実行されないことになる。
C言語のwhile文は、初期化とカウンタ変数の更新を省略したfor文として書き換えることができる。したがって、C言語のwhile文はfor文を特殊化したものといえる。ただし、while文ではループの条件を省略できない点がfor文と異なる。
例文int x = 0;while (x < 100) { printf("x は %d です。\n",x); x++;}
これを実行すると、次のような出力結果が得られる。x は 0 です。x は 1 です。………… x は 98 です。x は 99 です。
はじめ変数xの値は0であり、真文が1回実行されるたびに1が加えられる。真文が100回実行されるとxの値は100になり条件が成り立たなくなるため、このときこのループは終了する。
ループを終了するには、ループの条件を偽にするほかに真文においてbreak文を使う方法もある。ループの条件が常に真であり、真文にbreak文が含まれていない場合(またはbreak文が実行されない場合)、ループは無限ループとなる。また、真文が複数の文からなる場合、continue文を使うことで真文の実行を中止し、条件の評価から処理を再開することができる。
Pascalでは、前置判定としてwhile, do を、また後置判定として repeat, until を使用する。
前置判定while 条件 do 文
後置判定repeat 文; 文...; 文 until 条件
repeat-untilでは、条件式が偽の間はループの処理を行い、真になるとループを抜ける点が、Cなどの do-while と異なっている。whileと異なり、必要に応じ複数の文をrepeatとuntilの間における。
Visual Basicでは、条件が真の間にループを継続するための前置判定としてWhile、Do Whileを、後置判定としてDoを用いる。
Whileによる前置判定While 条件 文Wend
Do Whileによる前置判定Do While 条件 文Loop
Doによる後置判定Do 文Loop While 条件
Visual Basicでは、前置判定、後置判定を問わず、条件が偽の間にループを継続することも可能である。前置判定としてDo Until、後置判定としてDoを用いる。ただし、Whileとは異なり、Doを伴わないUntilは利用できない。
Do While文による偽の前置判定Do Until 条件 文Loop
Do文による偽の後置判定Do 文Loop Until 条件
関連項目
if文
for文
do-while文
goto文
制御構造
して下さる人を求めています(Portal:コンピュータ)。
カテゴリ: コンピュータ関連のスタブ項目 | 制御構造
更新日時:2008年10月18日(土)14:59
取得日時:2008/11/10 06:42