C言語 while文で簡単なループ文に挑戦

プログラミング

 

どうも。これまではif文やswitch文を使って条件分岐をするプログラムを紹介しました。それぞれC言語においては基本中の基本なのでぜひ覚えていってください。

 

今回は、次のステップとしてループ文を紹介していきます。ループ文はその名の通り”ループする”ための文です。プログラムでは規則性のある処理はループで自動的に処理してすることがとても多いです。

 

例えば、文字”*”を100回表示させたいとします。その場合に、わざわざ1つのprintfの中に”*”を100回書きますか?書いてもいいですが、かなり面倒ですよね。こういった場合にはループ文を使って「”*”を表示する」という処理を100回自動的に行わせた方がよっぽど効率的です。

 

ループ文を使いこなせるようになれば、これから行うプログラムが圧倒的に簡単になるはずです。逆にループ文が使えないとこれからのプログラムの学習は絶望的と言っても過言ではありません。では行きましょう。今回は while を使ったループ文について紹介します。

 

while文の書き方

 

while文はいたってシンプルで簡単な書き方で、

となります。

条件式の部分には、ループ文が終わるための条件となる式を書きます。条件式が満たされるとwhile文内の式が実行されます。{ } (ブロック)の中であれば複数の式を実行できます。

 

では実際にwhile文を使って「カウントダウンを行うプログラム」を書いていきましょう。

 

while文を使ってカウントダウンをする

 

まずは基本的な考え方を説明します。

今回行うカウントダウンの実行結果は「10 9 8 7 6 5 4 3 2 1 0」です。これを表示させるためにループ文を用いるのですが、どの部分がループになるのかわかりますか?

 

それは「10から0までが1ずつひかれている」という点です。これをループで表現するためには、変数を1つ宣言してその変数を10から0まで変化させるという作業を行います。

 

つまり、変数をiとすると「変数iを10から0まで変化させてそれをprintfで表示し、iが0に達したらループをやめる」というプログラムになるわけです。

 

これをプログラムで書くと

 

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

OKですね。

 

解説すると、まず最初に変数iを10で初期化します。その後while文の条件式「 i >= 0 」を満たすことでループ文が実行されます。このループ文ではiが0よりも小さくなったらループをやめるという条件があります。

 

while文内ではまず、変数iがprintfで表示されます。このときのiは10です。次に「i–」が実行されます。「i–」は「i=i-1」つまり「今のiから1を引く」という処理になります。なので10だったiが今度は9になります。(i–はデクリメントといって、ループ文のプログラムでは非常によく使う演算なのでぜひ覚えていってください)

 

そして再び条件式に戻りiが0よりも小さいかどうかを確認します。9は0よりも大きいのでまだループ文は続きます。この要領で、10だった変数iを1ずつ引いていった値をprintfで表示していき、最後に0より小さくなったらループ文が終わります。

 

 

どうでしたか?while文によるループは比較的簡単でパッと見ても理解しやすかったと思います。ループ文はこのほかにもあと2つほど紹介していく予定です。

 

どのループ文も基本は「ループするための条件式」と「ループ内で実行する式」の2つの構成からなるので、今回のwhile文が理解できればあとは少し書き方が違うだけなので安心してください。

では。

コメント