連載
» 2014年07月18日 11時00分 UPDATE

完全マスター! 組み込みC言語プログラミング(7):【問題6】while文とfor文――繰り返し処理を理解しよう (1/3)

C言語を使ったマイコン制御プログラムの“イロハ”を解説する本連載。今回は、繰り返し処理に用いられるwhile文とfor文を使い、2の0乗から15乗までの数値を表示するプログラムを作成します。

[横田一弘 埼玉県立新座総合技術高等学校 教諭,MONOist]
完全マスター! 組み込みC言語プログラミング

 本連載では、これから組み込みシステムのプログラミングを学びたい人向けに、C言語を使ったマイコン制御プログラムの“イロハ”を解説していきます。

 毎回少しずつステップアップしていけるよう、本文の最後で問題を出し、次回その解答と解説を紹介していきます。では早速、前回の問題を振り返ってみましょう。


問題6「2の0乗から15乗までの数値を表示」

前回の宿題(問題6):

2の0乗から15乗までの数値を表示するプログラムを作成してください。



 問題6は、while文for文、すなわち「繰り返し処理」に関する問題です。

 それでは解答を発表します!

#include <stdio.h>
 
int main(void)
{
        int n;
 
        n = 1;
        while (n <= 32768) {
                printf("%d\n", n);
                n *= 2;
        }
}
問題6の解答「twice.c」

 この「twice.c」を実行すると、次のような結果になります。

「twice.c」の実行結果 「twice.c」の実行結果

C言語の繰り返し文

 繰り返し(ループ)とは、「ある処理を何度も繰り返し実行する」プログラム構造のことです。一番単純な繰り返しは「無限ループ」と呼ばれるもので、文字通り、ある処理を永遠に繰り返し実行します。

 この無限ループは、Windowsなどのアプリケーションでは大変迷惑な存在ですが、OSを持たないマイコンのプログラムでは、main関数の中が無限ループになっており、処理を終えずにいつまでも動き続けるという役割を担います。

 無限ループのフローチャートは、以下の通りです。

無限ループ 「無限ループ」のフローチャート

 多くの場合、繰り返しは“制御式”と呼ばれる「条件」を持っています。以下の2つのフローチャートは、ある処理を実行する前に繰り返しを継続するかどうかを判定する「前判定ループ」と、ある処理を実行した後に繰り返しを継続するかどうかを判定する「後判定ループ」の構造を示したものです。

 C言語の繰り返し文では、while文とfor文は前判定ループ、do while文は後判定ループとなります。ちなみに、C言語の繰り返し文には、while文、for文、do while文の3つしかありません。

 この2つのフローチャートは、どちらも条件を満たすときに処理を実行するようになっています。このような条件を「継続条件」と呼びます。C言語の繰り返し文では、継続条件として制御式を書きます。

前判定ループと後判定ループ (左)「前判定ループ」と(右)「後判定ループ」
       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.