これまでは、条件によってプログラムの流れを変えるための手順をみてきた。ここからは、処理を繰り返すプログラムをみていく。今回は、for文である。
同じ処理を繰り返すプログラムでは、for文がよく使われる。for文の記述方法は以下の通りである。
for(カウンタの初期化式;繰り返し継続の条件式;カウンタの変化式)
繰り返しを行う処理
「繰り返しを行う処理」では、if文と同様に複数の文を書く場合は、{}でブロック文とする。
それでは、実際にプログラムをみてみよう。
//正の整数を読み込んで、その数まで0からカウントアップするプログラム
#include <stdio.h>
int main(void)
{
int num;
printf("正の整数を入力してください:");
scanf("%d",&num);
for (int i = 0; i <= num; i++)
printf("%d\n",i);
return 0;
}
実行結果
正の整数を入力してください:10
0
1
2
3
4
5
6
7
8
9
10
2重ループ
for文を二つ使うことで、1つのループの中にもう一つのループを作ることができる。ここでは九九の表を表示するプログラムをみてみよう。
//九九の表を表示する
#include <stdio.h>
int main(void)
{
for (int i = 1;i<= 9;i++) {
for (int j = 1; j <= 9; j++)
printf("%3d",i*j);
putchar('\n'); //改行
}
}
実行結果
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
- iが1のとき、jを1→9とインクリメントしながら1 * jを表示して改行
- iが2のとき、jを1→9とインクリメントしながら2 * jを表示して改行
- iが3のとき、jを1→9とインクリメントしながら3 * jを表示して改行
- iが4のとき、jを1→9とインクリメントしながら4 * jを表示して改行
- iが5のとき、jを1→9とインクリメントしながら5 * jを表示して改行
中略
- iが9のとき、jを1→9とインクリメントしながら9 * jを表示して改行
書式%3dとすることで、各値の出力を少なくとも3桁で行っている。
for文を使って繰り返し文を読み解く練習をすると、プログラムを読み解く力を鍛えるのに効果的だ。C言語を学ぶうえで正確にプログラムの動きを解析することは非常に大切である。また、C言語に限らずコンピュータプログラムとは、けっして大雑把なものではなく、ひとつの記述ミスで動きが大きく変わってしまい、予想外の動きをすることもあるので注意したい。
いかがであろうか。この小文でC言語に少しでも興味を持っていただけたら幸いである。
(参考文献)新・明解C言語 入門編 第2版 柴田望洋著(SBクリエイティブ)、基礎C言語 (株)アンク著(インプレス )
コメント