それでは、これまでwhile文で書いたプログラムをfor文に書き換えてみましょう。
「初期値」「繰り返し条件」「増分」を念頭に置きながら考えてください。
まずは、<sample program 030-01>を書き換えてください。
解答例です。
<sample program 057-01>
#include <stdio.h> int main(void) { int counter; for (counter = 0; counter < 10; counter++) { printf("%d\n", counter); } return 0; } |
<実行結果>
0 1 2 3 4 5 6 7 8 9 続行するには何かキーを押してください・・・
「初期値」「繰り返し条件」「増分」をfor文のどこに書けばよいか、が分かれば簡単です。
次は、<sample program 031-04>を書き換えましょう。
解答例です。
<sample program 057-02>
#include <stdio.h> int main(void) { int counter; for (counter = 10; counter > 0; counter--) { printf("%d\n", counter); } return 0; } |
<実行結果>
10 9 8 7 6 5 4 3 2 1 続行するには何かキーを押してください・・・
では、次は少し飛びますが、<sample program 039-05>を書き換えてみましょう。
解答例です。
#include <stdio.h> int main(void) { int counter; int sum; int input; sum = 0; for (counter = 0; counter < 5; counter++) { printf("数値を入力してください:"); scanf("%d", &input); sum += input; } printf("合計は%dです。\n", sum); return 0; } |
<実行結果>
数値を入力してください:5 数値を入力してください:3 数値を入力してください:5 数値を入力してください:3 数値を入力してください:5 合計は21です。 続行するには何かキーを押してください・・・
このように、これまでwhile文で書いたプログラムをfor文に書き換えることは簡単にできます。
何度も書きますが、for文は「繰り返し回数が決まっている場合」非常に楽に書ける命令なのです。
続いて、二重ループの書き換えを行ってみましょう。
<sample program 052-02>をfor文に書き換えてください。
解答例です。
<sample program 057-04>
#include <stdio.h> int main(void) { int i; int j; for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { printf("*"); } printf("\n"); } return 0; } |
<実行結果>
***** ***** ***** ***** ***** 続行するには何かキーを押してください・・・
二重ループもすっきり書けます。
最後に<sample program 053-04>を書き換えましょう。
解答例です。
<sample program 057-05>
#include <stdio.h> int main(void) { int i; int j; for (i = 2; i < 10; i++) { for (j = 2; j < 10; j++) { printf("%3d", i * j); } printf("\n"); } return 0; } |
<実行結果>
4 6 8 10 12 14 16 18 6 9 12 15 18 21 24 27 8 12 16 20 24 28 32 36 10 15 20 25 30 35 40 45 12 18 24 30 36 42 48 54 14 21 28 35 42 49 56 63 16 24 32 40 48 56 64 72 18 27 36 45 54 63 72 81 続行するには何かキーを押してください・・・
この他にも、繰り返し回数が決まっているプログラムをfor文で作ってみましょう。