【C言語の入門】ループの方法:for文やwhile文の使い方を詳しく説明

c言語の入門方法を、どんな方でもわかるように、まとめました。 また、具体的に勉強することなどもまとめていますので、読めば誰でも、c言語がかけるようになります。

どうもピーマンです。

初めてのc言語や、if文とは?という記事に続き今回は、繰り返しの処理をすることができるループという機能を説明していきます。

C言語のループについて

それでは、まず、ループとはどの様なものなのかを説明します。

ループとは?

ループとはその名の通り繰り返しのこのです。例えば、「こんにちは!」と100回表示するプログラムを作るとしましょう。しかし、printf関数で「こんにちは!」と100回書くのは苦行以外の何者でもないですよね?笑

そこで登場するのがc言語の機能の1つであるループです。c言語のループは、大きく分けて2つの方法で表すことができます。それでは1つずつ見ていきましょう!

for文

1つ目に説明するのがこのfor文です。それでははじめに、上記にある「こんにちはを100回表示するc言語のプログラムを説明していきます。以下のソースコードをコンパイルし実行して見ましょう。

実行結果は、「こんにちは!」×100 というようになったはずです。for文、とても便利ですね!

ここで、新しく出てきたfor文の使い方を見ていきましょう。基本的には以下の様な書き方をします。

for(変数を0に初期化 ; 繰り返す条件 ; 繰り返すごとの処理)
{
    繰り返す処理;
}

for文は3つの要素から繰り返し処理を行います。

3つの要素は ; で区切られています。例(初変数の初期値;変数 < 上限;変数++)

このソースコードの場合は、i という変数を宣言し、i に0を代入しておきます。次に、変数 i の上限を100にしました。そして、1度繰り返しするごとに i に1をプラスしていきます。

ちなみに、i++ というのは、i に1を足すという意味です。i++の代わりに i=i+1と記述してもOKです!

これらをfor文の文法にしてがって記述すると、以下の様なものになります。この場合は、i=0〜i=99までの計100回繰り返し処理を行います。

for(i=0 ; i<100 ; i++)

それでは、例として、べつのソースコードを見ていきましょう。次のfor文を使用したc言語のソースコードは、10から100まで、変数の値を10ずつ増やし表示するプログラムです。コンパイルして実行しましょう。

実行結果は以下のようになります。

変数の値は10です
変数の値は20です
変数の値は30です

(略)

変数の値は100です

while文

次にwhile文をいうものを説明していきます。このwhile文は、回数で繰り返しを判断するfor文とは異なり、if文の様に条件で繰り返しをする機能です。

とりあえず、上記の「こんにちは!」を100回表示するc言語のソースコードを、for文ではなく、while文で書き直して見ましたので、コンパイルして実行して見ましょう。

実行結果は、for文と同じ様に「こんにちは!」×100 になりました。ここで、while文がどの様に動作していたのかを説明していきます。

while (条件)
{
    条件が真の場合に実行される。
}

見ての通りwhile文では( )の中がif文と同じ様に真である場合に繰り返し処理が実行されます。

上記のソースコードの場合は、条件を i < 100 と設定したので、{ }内で繰り返し i に1が足され続けて99になるまで繰り返し「こんにちは!」と表示させることができました。

例として、while文を使い別のc言語のコードを見て見ましょう。以下のソースコードをコンパイルし、実行してください。

実行してみるとわかると思いますが、これはテストの点数が80点を超えるまで、勉強する様に命令してくる嫌なプログラムです(笑)

break文をfor文やwhile文と組み合わせる

これは豆知識というか、知っておくと便利な知識のような感じなのですが、実は、switch文の説明をした時に出てきたbreak;という文をfor文やwhile文と組み合わせることができます。

例として、for文を使いうるう年かどうか判定するプログラムを説明します。また、このc言語のプログラムは、うるう年が入力されるまでループし続けるので注意してください。

※うるう年は西暦が4で割り切れる年

まず、説明するのがfor文の中身です。for文には面白い使い方があり、以下の様にすると、無限にループし続けます。

for(;;)

そして、この無限ループの状態から抜け出すことができるのがbreak文という訳です。

多重ループ

次に説明するのが、多重ループです。これは、使えるとプログラミングをしている感がとても増して、テンションが上がります(笑)

ループの中で、ループ

なんか、かっこよくありませんか?

多重ループを使ってみよう!

多重ループを使ったもので、1番有名なのが、おそらく掛け算九九を表示するc言語のプロブラムです。

ということで、実際にfor文の中にfor文があるソースコードをコンパイルし、実行してみましょう!。ちなみに、%5dというのは、5文字文のスペースを使用して表示するという意味です。

実行結果は、以下の様になります。

    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

この様な多重ループは、今後たくさん使っていくので、ぜひ使い方を覚えておきましょう!

for文などループを使用するときの注意

次にfor文やwhile文を使用する時の注意です。

無限ループ

for文を紹介した時に、for(;;)という使い方を紹介しました。しかし、この時に注意があります。それはbreak文を書き忘れることです。

プログラムのミスにより無限にループするときは、パソコンに負荷がかかり、動作が重くなったり、発熱の原因にもなります。

もし無限ループが起きてしまった時には、すぐにプログラムを停止させるか、パソコンの電源を落としましょう!

まとめ

プログラミングにおいて、ループはとても重要なものです。まだ完全に理解ができない人もいると思いますが、諦めずに、もう一度読み返してみたり、別のサイトなどで理解を深めてみましょう!。