プログラミングの基本である繰り返しの構文を身につける
全てのプログラミングの基本である繰り返しはコンピューターが非常に得意とする処理でもあります。
基本的に条件分岐と繰り返しが理解できていれば、ある程度のレベルの制作が出来ると言っても過言ではありません。
今回はC言語における繰り返しの処理for文を学んでいきましょう。
まずはfor文を試してみる
例題としてカウントアップをするプログラムをfor文で作成してみましょう。
下記のようになります。
プログラム例
int i = 0; for(i = 0; i < 10; i++) { printf("i=%d\n", i); }
実行結果
i=0
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
i=9
非常にシンプルですが、for文の書き方を知るには丁度よい例と言えるでしょう。
中身について説明をするとfor(初期化; 条件判定; 再初期化)となります。
初期化の部分は例題ではi=0としています。
その後条件判定i < 10が行われます。この結果が真であればfor文の中身の処理が行われ、今回はprintfの処理が行われます。
その後、for文の中身の処理が終わったら再初期化の処理i++が行われます。
これは変数iに対して1プラスする処理です。つまり次のiの値は1となります。
そして、条件判定を行い、一致していれば中身の処理を行い、一致しなくなったらfor文の処理が終わるという流れとなります。
以上がfor文の説明となります。
i < 10の部分をi < 20にすれば20回繰り返しの処理になります。
この処理が出来ることによって、様々なプログラミングが作成可能になるので、キッチリと理解して使いこなせるようにしましょう。
for文で三角形を作ってみよう
for文をきっちりと理解できているのかテストする方式としてfor文を使って三角形を作るプログラムを作成してみましょう。
今回は正解を出しますが、後ほど応用問題を出しますので自習用に使ってみてください。
プログラム例
int i = 0; for(i = 0; i < 10; i++) { int j = 0; for(j = 0; j < i+1; j++) { printf("*"); } printf("\n"); }
実行結果
*
**
***
****
*****
******
*******
********
*********
**********
*を使用して三角形のように表示させるプログラムですね。
ポイントはfor文の中に別のfor文を入れていることです。
2つ目のfor文の条件式はj < i+1としています。
こうすることにより1列目は1つだけの*が表示され、10列目には10列目には10個の*を連続で表示することに成功しています。
応用問題に挑戦
それでは下記の応用問題に挑戦してみてください。
応用問題「逆三角形の表示になるプログラムを作成してみましょう」
実行結果としては下記になるようにしてみてください。
実行結果
**********
*********
********
*******
******
*****
****
***
**
*
ポイントは2つ目のfor文の処理となります。
やり方は幾つかありますので様々な方法を見つけてみてください。
例えばj++のように1ずつプラスするのではなくj–という1ずつマイナスしていく方法もあります。
他にも三角形のプログラムを少し変えるだけで逆三角形にすることが出来ますので、挑戦してみましょう。