コンピュータは人間が教えた手順を黙々と繰り返し行うことが得意です。
もう少し、無限ループを見てから次のステップに進みましょう。
前回は「文字を無限に表示する」というプログラムを書きましたから、「数値を無限に入力する」というものを書いてみます。
<sample program 029-01>
#include <stdio.h> int main(void) { int data; while (1) { scanf("%d", &data); } return 0; } |
<実行結果>
100 15 2 -1 0 87 . . . 延々と繰り返し (ウィンドウの×ボタンかCtrl+Cキーで止めてください)
延々と入力が出来ます。
何度も数値を入力する場合に使えそうですが、いつまでたっても終わりません。
後々役に立ちますが、今は先に進みましょう。
次のサンプルは「数値を無限に表示する」です。
<sample program 029-02>
#include <stdio.h> int main(void) { int counter; counter = 0; while (1) { printf("%d\n", counter); } return 0; } |
<実行結果>
0 0 0 0 0 0 . . . 延々と繰り返し (ウィンドウの×ボタンかCtrl+Cキーで止めてください)
数値を表示するプログラムを延々と繰り返しています。
変数counterの中身は0(ゼロ)ですが、これが無限に表示されます。
この時点では、まだ繰り返しが意味のあるものとは感じませんが、この次のプログラムからが非常に重要になります。
次のサンプルは、上のプログラムに「数値を増やす」という一行を追加したものです。
<sample program 029-03>
#include <stdio.h> int main(void) { int counter; counter = 0; while (1) { printf("%d\n", counter); counter = counter + 1; } return 0; } |
<実行結果>
0 1 2 3 4 5 . . . 延々と繰り返し (ウィンドウの×ボタンかCtrl+Cキーで止めてください)
whileの中括弧の中には何行も命令が書けます。
変数counterの中身を表示した後、counterの中身を1増やしています。
実際に実行すると、早すぎてあっと言う間に一万とか二万といった数が表示されてしまいますが、上の実行結果のように、まず0が表示され、次に1、2、3といった具合に数が増えていきます。
丁度、人間が数を数えるのと同じように1ずつ増えていくのです。
この仕組みを「カウンタ」と言います。
「カウンター」の間違いじゃないか?と思うでしょうが、コンピュータ用語は最後の「−」を省略して書くことが多いです。
「カウンタ」は繰り返しの中で非常に重要な役割を果たします。
数を数えることが出来れば、「指定した回数繰り返す」という処理が書けるのです。
次はwhileに条件を付けて、繰り返し回数をコントロールしてみましょう!