While文はFor文よりも単純.条件が成立する間,処理を繰り返すだけ.ループの初期化や変化の部分はない.
i = 0; /* ループ(制御変数)の初期化 */ while ( i < 3 ) { printf("i= %d\n", i); i++; /* ループ(制御変数)の変化 */ }
while ( ループの条件 ) { ループで繰り返す処理; }
While文は「条件が成立している間,何かを繰り返し実行したい」場合に使うと便利.
c = getchar() ;キーボードでタイプした(標準入力の)文字を一文字取り込んでcに入れる
List7-2
「List7-3」で遊んでみましょう.
EOF;ファイルの終わり(End Of File)を示す特別な文字.キーボードから入力するときはCtrl+DがこのEOFを発生させる
while ( ( c = getchar() ) != EOF ) { ループで繰り返す処理; }
「List7-3」(list7-3.c)は,標準入力からEOFが来るまで,標準入力を標準出力に書き出すだけのプログラム.
Unixでは,標準入出力をファイルや他のプログラムの標準出入力に切り替える(リダイレクト)ことができます.
% date > input ( dateコマンドの出力を input というファイルに入れる ) % ./list7-3 cat input ( input ファイルの中身を表示させてみる ) % ./list7-3 < input ( この方法でも input ファイルの中身が表示される ) % ./list7-3 < input > output ( inputファイルをoutputファイルにコピーできる! ) % ./list7-3 cat output ( output ファイルの中身を表示させてみる )
7章のクイズと間違い探し
練習問題7-1
練習問題7-2