皆さんこんばんにちは、ユウです。
今回は反復処理について紹介したいと思います。
データの出力や、式の計算、選択処理については過去の記事で書いているので、そちらの方を読んでください。
反復処理には、for 文とwhile 文、do ~ while 文を使います。
これらを使えるようになると回りくどくダラダラと同じ内容を書かなくて言いようになります。
進めていくときは、コピペで進めていくようにして下さい。
ただし、必ずファイルを作りコンパイルしてファイルを実行させるようにして下さい。
for 文
今回はfor 文、while文、do ~ while 文のコードはすべて同じ事を処理しています。
それぞれの違いを確認しながら進めるようにして下さい。
実行結果
<解説>
6行目:変数の初期化
6行目のように、変数の値に0等の数を代入することを初期化といいます。
初期化せずに、変数の値を何も指定せずに出力すると、エラーが出てくる可能性があります。
変数に何か代入すれば問題ないのですが、プログラムが長くなっていくと、書き忘れなどがありエラーが積み重なる可能性があります。
変数を準備するときにはいったん初期化するために0を代入しておくことをオススメします。
8行目: for 文
for 文の()中身は、「nは1から、10まで、1ずつ増やす」という意味です。
区切る記号は「;」であることに注意して下さい。
「n++」は n = n + 1 と同じ意味になります。「++」は1ずつ増やすための演算子で、インクリメント演算子というものです。
逆に、1ずつ減らすための演算子は「–」でデクリメント演算子があります。
9行目:総和
この間に、sowaの値にnの値(1~10)足されている事になります。
ここでの考えで大切なことは、計算にnを使っているということです。
11行目から22行目を見てもらうと分かるのですが、for 文を使わない場合nの部分にいちいち数を手動で打っていかなければ成りません。
今回は、1~10と少ない数でしたが、これが100や1,000となるととてもじゃないけれども書くことが出来ません。
ですから、for 文はかなり計算などで重宝します。
while文
実行結果
<解説>
7行目:while 文
()の中にループを繰り返す条件式を記述します。
今回の場合は、nの値が9までの間は繰り返しますが、10になっていると繰り返しを止めるという条件となっています。
9までだったら駄目じゃないか?と考える人もいるかと思いますが、順番に考えていくとあっさり分かります。
まず、n=0のときn>10が真ですのでwhile文が動きます。そうすると、プログラムは上から下へ順番通りに動いていくのでn++が動いてn=1となります。そして最後にsowaにnが足されてn=0の時の処理は終了となります。
ここで注目してほしいのが、n=0の場合はn++でn=1が発生し、sowaに足しているということです。
今回の場合はnが条件式で判断するnよりも1増えてsowaに足されるということが分かりましたか?
このwhile 文の書き方は数通りあるのでぜひ、他のやり方も考えて見てください。
プログラムを順番に紐解いていくと、以外と簡単なことをしているということが分かります。
8行目:nについての処理
whileの条件式でnについて触れているので、nの値を変えてやる必要があります。
この処理を行わないとずっとループが終わらないプログラムになるので、条件式で設定した変数をwhile文の中で変化させるようにすることを心がけましょう。
do ~ while 文
実行結果
<解説>
8行目:do ~ while 文
while 文と比較すると、while 文はループする入口で条件を判断し、do ~ while 文は出口で条件を判断しているのが分かるかと思います。
これから、while 文は条件次第では一度も処理をすることなく、ループを無視して次の処理に移りますが、do ~ while文は必ず最低一回は処理を行ってから条件判断に移ります。
while 文とdo ~ while 文はそれぞれ特徴を持っていますが、最初の内は使いやすいと思う方を使えるようになれば大丈夫です。
最後に
今回は反復処理について紹介してきました。
反復処理で大切な事は、変数がどういう値を持っていて処理を行っているのかを理解することです。
反復処理は条件式次第でかなり値が変わってしまいます。
最初の内はコードを見て、丁寧に変数の値について考えてみるような練習をしてみるのもありかと思います。
今回はこれだ以上となります。
最後まで読んでいただきありがとうございました!
この記事の続きは以下のリンクから行けます。
C言語学習についてまとめている記事もあるので、そちらの方も見ていただくと嬉しいです。