繰り返すという命令は数種類ありますが、最初は「while」という命令から始めます。
「while」とは(〜の間)という意味で、Cでは(〜の間、繰り返す)ということになります。
もう少し詳しく書くと、「ある条件が成り立っている間繰り返す」となります。
まずは文法を見てみましょう。
・while文の文法
while (条件) { 繰り返したい処理 }
「()」丸括弧内の条件が成り立っている間、「{}」中括弧内の処理を繰り返す。
逆の説明をすると、丸カッコ内の条件が成り立たなくなったら、繰り返しを終わります。
ここでの「条件」とは、if文の「条件」と同じです。
これを頭に置いて、サンプルを見てください。
<sample program 028-01>
#include <stdio.h> int main(void) { while(1) { printf( "Hello C World\n"); } return 0; } |
<実行結果>
Hello C World Hello C World Hello C World Hello C World Hello C World . . . 延々と繰り返し
while文の「条件」は「1」になっています。
if文の時に説明しましたが、「条件」は「0以外であれば成立」します。
while文は「条件が成立している間繰り返す」という命令ですから、この条件は「成立しっぱなし」となります。
不成立になることがありませんから、延々と中括弧内のprintf文を繰り返す訳です。
繰り返し処理のことを「ループ」と言いますので、延々と終わらない繰り返しを「無限ループ」といいます。
実際にプログラムを打って試した場合は、×ボタンを押して実行ウィンドウを閉じるか、「Ctrlキーを押しながらCキーを押す」ことで、プログラムを停止してください。
では、もう一つのサンプルを見てみましょう。
<sample program 028-02>
#include <stdio.h> int main(void) { while(0) { printf( "Hello C World\n"); } return 0; } |
<実行結果>
続行するには何かキーを押してください・・・
このサンプルでは、「条件」が「0」となっています。
while文は条件が不成立の場合繰り返しを行いません。
いきなり不成立ですから、中括弧内の処理はまったく行われず、returnの所へ処理が飛びます。
このように、成立している場合は繰り返し、不成立の場合は繰り返さないということが基本です。