Powered by SmartDoc

14 7章;While文

14.1 反復その2;While文

While文はFor文よりも単純.条件が成立する間,処理を繰り返すだけ.ループの初期化や変化の部分はない.

リスト 14.1.1 前出のFor文をWhile文で書き直す
i = 0; /* ループ(制御変数)の初期化 */

while ( i < 3 ) {
  printf("i= %d\n", i);
  i++; /* ループ(制御変数)の変化 */
}  
リスト 14.1.2 While文のパターン
while ( ループの条件 ) {
  ループで繰り返す処理;
}
図 14.1.1 Whileループのフローチャート

While文は「条件が成立している間,何かを繰り返し実行したい」場合に使うと便利.

14.2 List7-1

c = getchar() ;キーボードでタイプした(標準入力の)文字を一文字取り込んでcに入れる

List7-2

14.3 List7-3,標準入力及び標準出力,リダイレクト

「List7-3」で遊んでみましょう.

14.3.1 標準入力及び標準出力

標準入力
通常はキーボード.プログラムは標準入力からデータを読み込む.
標準出力
通常は画面.プログラムは標準出力にデータを書き出す.
getchar()
標準入力から1文字読み込む.
putchar(c)
標準出力に1文字(文字c)を書き出す.

EOF;ファイルの終わり(End Of File)を示す特別な文字.キーボードから入力するときはCtrl+DがこのEOFを発生させる

14.3.2 List7-3 (ファイルのコピーができる)

リスト 14.3.2.1 ファイルの終わりまで処理を続けるときに使うパターン
while ( ( c = getchar() ) != EOF ) {
  ループで繰り返す処理;
}

「List7-3」(list7-3.c)は,標準入力からEOFが来るまで,標準入力を標準出力に書き出すだけのプログラム.

14.3.3 リダイレクト

Unixでは,標準入出力をファイルや他のプログラムの標準出入力に切り替える(リダイレクト)ことができます.

図 14.3.3.1 教科書p159のFig7-3
% date > input       ( dateコマンドの出力を input というファイルに入れる )
% ./list7-3 cat input   ( input ファイルの中身を表示させてみる )
% ./list7-3 < input  ( この方法でも input ファイルの中身が表示される )
% ./list7-3 < input > output ( inputファイルをoutputファイルにコピーできる! )
% ./list7-3 cat output   ( output ファイルの中身を表示させてみる )

14.4 7章のその他のプログラム例

14.5 課題

7章のクイズと間違い探し

練習問題7-1

練習問題7-2