目次
1.何度も繰り返す処理はfor文を使おう
2.終わる条件は必ず定義しよう ~無限ループ~

何度も繰り返す処理はfor文を使おう

次のようなプログラムを作る場合、あなたはどのように記述しますか?
(例題1)*Hello,world!というメッセージを10回表示させる

printfを10回記述すれば、メッセージを10回表示できますね。
しかし、このソースコードはあまりスマートではないように感じませんか?
C言語には繰り返し処理(ループ処理)をする時にfor文というものを使用します。
for文の基本文法は以下の通りです。

           for(処理1;処理2;処理3){
*繰り返しする処理*       }

それぞれの処理の説明の前に、実際に先ほどのプログラムを、for文で書き換えてみましょう。

実行結果は同じですが、ソースコードはとてもすっきりしました。
for文を使用する手順は以下の通りになります。

①繰り返し回数をカウントするためのカウンタ変数を定義する(int i ;)
②for文の処理1の部分で、カウンタ変数を初期化する(i =0)
③for文の処理2の部分で、繰り返し条件を定義する(i < = 9)
④for文の中に、繰り返し処理を記述する(printf(“Hello,world”)
⑤for文の処理3の部分で、カウンタ変数の増分処理をする(i++)
今回のfor文は iが0から9までの10回ループ処理を行うということになります。
なぜ10回ループをするのに、1から10ではなく0から9と定義するのでしょうか?
C言語に限らずプログラミングでは、0という数字は非常に重要です。
コンピュータの内部処理ではスタートの数字は0だからです。
プログラミングを始めたばかりの時はスタートが1ではなく0ということに違和感を覚えるかもしれませんが、そういうものだと覚えるようにしましょう。
また、『i++』 という表現はインクリメントといい、iに1を加えるという意味です。
今回は使用しませんが、『i–』とすればiから1を引く(デクリメント)ようになります。
この演算子も初めは違和感がありますが、非常によく使用しますから、覚えておきましょう。
以上のことから、今回のfor文は以下のようにループ処理が行われます。

① iの初期値は0
② iは0で、9以下なので繰り返し処理に入る。
③ 繰り返し処理:Hello,world!と1回表示する。
④ 繰り返し処理を抜けて、iに1を加える。iは1になる。
⑤ iは1で、9以下なので繰り返し処理に入る。
⑥ ③、④、⑤を 繰り返してiが10になるとfor文を抜けて次のステップへ移る。
for文の基本的な使い方は分かりましたね。
では、次はfor文を使用する時の注意事項です。

終わる条件は必ず定義しよう ~無限ループ~

先ほどの例題1では、自動的にfor文を抜けてプログラムは終了しました。
しかし、もし終了条件を誤ってしまったらどうなるのでしょうか?
先ほどの例題1のプログラムのfor文の繰り返し条件を以下のように変更します。

すると、どうなるでしょうか?iは処理を行うたびに1が加えられていきますが、ずっと0以上の数字のため、for文から抜けることが出来ません。
このように永遠にループするプログラムを無限ループといいます。
このようになる可能性がある場合は、終了条件を定義しておくと安心です。

赤枠の部分に追加したのはこのループ処理を抜ける終了条件です。
for文の繰り返し条件はiが0以上ですが、ループ処理の中でiが9になったら、break(for文を終わらせる)という処理を付け加えることで、無限ループを回避することが出来ました。
無限ループをわざと起こすことも実際にはよくあることですが、for文の終わらせ方であるbreakの使い方も覚えておくと応用が出来ますよ。
また、予期せぬ無限ループになってしまい、プログラムを強制終了させたい場合は『Ctrl + C』を押すとプログラムは止まりますから、覚えておきましょう。