while文の構文

while文の基本的な構文は以下になります。

while文で必須の構文

while文のループ処理を書く場合に、必須なのはwhile文の行と、そこからインデントされた処理の部分です。この部分があればwhile文として成立します。

while文の条件文に一致している間はずっとwhileの中のブロックの処理が繰り返されます。条件文が終わらない場合は「無限ループ」になります。

他のbreak文、continue文、elseブロックは省略可能です。

while文の条件文の右にはコロン(:)を付けます。付けていない場合はエラーになります。

ループを抜けるbreak文

whileループの途中で条件によってループを抜けたい場合はbreak文でループを終了することができます

一般的にbreak文を使う用途としては、それ以上ループしても意味が無い場合や処理を継続したくない、というような場合に利用されます。

break文でループを抜けた場合はelse文も含めて抜けるため、else文のブロックは実行されません。

次ループの先頭に戻るcontinue文

条件によってループの以降の処理を行わず次のループ処理の先頭に戻る場合はcontinue文を使います。

一般的にcontinue文を使う用途としては、ループ中の処理でなんらかのチェック処理を行い、そのチェックに引っかかったら以降は処理しない、というような場合に利用されます。

while文が正しく終了した場合に実行されるelse文

while文と同じインデントでelseを指定しておくと、ループが正常終了した場合にのみ実行される処理を書くことが出来ます。

言い方を変えると、while文の条件文に当てはまらなくなった場合(条件文不一致でwhileループを終了した場合)にelse文のブロックが処理されることになります。

else文は省略しても構いません。

while文の使い方

実行結果
0
1
2

単純なwhile文はこのようなコードになります。

条件文に「i < 3」とあり、変数iが3より小さい間はループする、という意味になります。

print関数と変数iへ1加算する処理の2行がありますが、どちらもwhile文のブロックの中に含まれるため、while文の条件文に一致する間は繰り返し実行されます。

変数iはwhile文の直前で0に初期化され、while文のブロックの中で1ずつ加算しているため、print関数で初期化時の値の0の出力から始まり、ループごとに1、2と出力されます。

3が出力されないのは変数iが3の場合に「i < 3」の条件に一致せずwhile文のループが終了しているためです。

break文とcontinue文の使い方

break文とcontinue文は通常はなんらかの条件文と組み合わせて書きます。

以下は変数iの値によってcontinue文やbreak文を行う条件があるサンプルです。

実行結果
continue
continue
2
loop end
3
break