1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

【C言語入門】初心者向け:繰り返しfor文を使いこなそう

Pocket

目次

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』を押すとプログラムは止まりますから、覚えておきましょう。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

おすすめスクール

全国30校舎で展開されるヒューマンアカデミーのWeb講座は修了者数4万人超、講師とカリキュラムの満足度がどちらも9割を超えています。就職や転職に必要なレベルの実務スキルを身に付けられます。

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

イチ押しランキング

1リナックスアカデミー

リナックスアカデミー

2システムアーキテクチュアナレッジ

システムアーキテクチュアナレッジ
ページ上部へ戻る