情報処理のWeb教科書―IPA情報処理試験対策のお供に!

C言語の制御文の種類とフローチャートの書き方

トップ プログラミング C言語 入門 制御文の種類とフローチャートの書き方

プログラミングに無くてはならないのは制御文です。フローチャートの書き方を示しつつ、C言語の制御文(分岐)の方法について説明しています。

▲記事トップへ

目次

この記事の目次です。

1. 制御文とは
2. 選択
3. 繰返し
4. 再帰呼出し
5. 条件分岐(if、else)
6. 条件分岐(switch)
7. 繰り返し(for)
8. 繰り返し(while)

もっと知識を広げるための参考
更新履歴

1. 制御文とは

制御文とは、プログラムは上から下に実行されますが、途中で条件を分けたり、もとに戻ったりする制御を行う文を制御文といいます。 制御は大きく選択と繰返しに分けられ、C言語の制御文には、if else、switch、while、for文などがあります。

参考

以下は制御文についての参考になります。

プログラム言語

プログラム言語とは何かをテーマに、プログラミング言語の意味から、種類、特徴、体系、スタック領域やヒープ領域といった記憶域などの知識をまとめています。

詳細

2. 選択

基本的な制御構造の1つ、選択について見ていきます。

if文

if文は条件に応じて処理を行うか行わないかを制御する制御構造です。

制御構造―選択(if文)
制御構造―選択(if文)

if-else文

if-else文は条件に応じてある処理を行うか、そうではないときに別のある処理を行うかを制御する制御構造です。

制御構造―選択(if-else文)
制御構造―選択(if文)

3. 繰返し

基本的な制御構造の1つ、繰返しについて見ていきます。

while文、for文

while文、for文は条件に合う場合繰返し処理を行う制御構造です。

制御構造―繰返し(while文、for文)
制御構造―繰返し(while文)

do-while文

do-while文は初めに処理を行いその処理を条件に合う場合繰返し処理を行う制御構造です。

制御構造―繰返し(do-while文)
制御構造―繰返し(do-while文)

4. 再帰呼出し

なお、ある関数や手続きの中で再びその関数や手続きを呼び出すことを再帰呼出しといいます。

5. 条件分岐(if、else)

Aであれば実行する、Aでなければ実行しないというような2方向の分岐を行う場合は、if文を使用します。 if文は「if(条件式) {処理A}」というように記述し、条件式が0以外の場合に処理Aが実行されます。

if(A) {
    Bの処理;
} else if(C) {
    Dの処理;
} else {
    それ以外の場合の処理;
}

if文の条件式に単項式を用いる方法

C言語のif文の条件式に単項式を用いる方法について説明しています。

たとえば、aという変数のみのだけのような1つの項からなる式のことを単項式といいます。

サンプルソース

ソースフォルダに以下のサンプルコードを記述したテキストファイルを作成します。

//ファイル名:sample.c

#include <stdio.h>

int main(void) {
	int a;

	a=1;
	printf("%dは?", a);

	if (a) {
		printf("OK");
	}
	printf("\n");

	a=0;
	printf("%dは?", a);

	if (a) {
		printf("OK");
	}
	printf("\n");

	a=-1;
	printf("%dは?", a);

	if (a) {
		printf("OK");
	}
	printf("\n");

	return 0;
}

コンパイル方法

コマンドプロンプトでソースファイルを保存したフォルダに移動しgccコマンドを実行してコンパイルします。

>cd test
>gcc sample.c

実行方法

a.exeというファイルができたフォルダにコマンドプロンプトで移動し、 a.exeとコマンドラインに入力する以下のように表示されます。

>a.exe
1は?OK
0は?
-1は?OK

6. 条件分岐(switch)

1であれば1の処理、2であれば2の処理、それ以外であればそれ以外の処理を実行するという分岐を行う方法にはif文以外にswitch文があります。

switch(x) {
case 0:
	xが0の場合の処理;
	break;
case 1:
	xが1の場合の処理;
	break;
 :
default:
	xが上記以外の処理;
}

caseの後に条件となる値と「:」を記述し、処理の後にbreak文を記述します。 break文がないとそこで処理を抜けずに下のcaseの処理も行ってしまいます。 また条件以外の値の場合はdefaultに飛びます。

サンプルソース

以下はswitch文の例です。

//ファイル名:sample.c

#include <stdio.h>

int main() {
	int x = 1;
	switch(x) {
	case 0:
		printf("xが0のケース\n");
		break;
	case 1:
		printf("xが1のケース\n");
		break;
	case 2:
		printf("xが2のケース\n");
		break;
	default:
		printf("xが0,1,2以外のケース\n");
	}
	return 0;
}

コンパイル方法

コマンドプロンプトでソースファイルを保存したフォルダに移動しgccコマンドを実行してコンパイルします。

>cd test
>gcc sample.c

実行方法

a.exeというファイルができたフォルダにコマンドプロンプトで移動し、 a.exeとコマンドラインに入力する以下のように表示されます。

>a.exe
xが1のケース

7. 繰り返し(for)

for(条件) {
    条件が成立する間行う処理;
}

C言語で繰り返し処理を行う方法の1つにfor文があります。 for文は繰り返し回数指定&条件に一致する場合に同じ処理を行いたいときにfor文を使います。

for文の構文

for文の構文です。

for (①カウンタの初期設定;②繰り返し条件;③繰り返し毎のカウンタの設定) {
    繰り返し処理
}

①カウンタの初期設定 …繰り返し条件で使用するカウンタ用の変数の初期値を設定します。

②繰り返し条件 …繰り返しの終了条件を条件式で記述します。

③繰り返し毎のカウンタの設定 …繰り返し毎にカウンタに値を設定する式

for文の例

「Hello World!!」という文字列を1文字ずつ解析して表示してみます。

#include <stdio.h>

int main (void) {
    char message[] = "Hello World!!";
    int i;
    for (i=0; i<13; i++) {
        printf("%c", message[i]);
    }
    printf("\n");
    return 0;
}

コンパイル方法

コマンドプロンプトでソースファイルを保存したフォルダに移動しgccコマンドを実行してコンパイルします。

>cd test
>gcc hello.c

実行方法

a.exeというファイルができたフォルダにコマンドプロンプトで移動し、 a.exeとコマンドラインに入力すると「Hello World!!」と出力されます。

>hello
Hello World!!

8. 繰り返し(while)

while(条件) {
    条件が成立する間行う処理;
}

C言語で繰り返し処理を行う方法の1つにwhile文があります。

while文の構文

while文の構文です。

while (条件式) {
    繰り返し処理
}

while文の例

「Hello World!!」という文字列を1文字ずつ解析して表示してみます。

#include <stdio.h>

int main (void) {
    char message[] = "Hello World!!";
    int i = 0;
    while (i<13) {
        printf("%c", message[i]);
        i++;
    }
    printf("\n");
    return 0;
}

コンパイル方法

コマンドプロンプトでソースファイルを保存したフォルダに移動しgccコマンドを実行してコンパイルします。

>gcc hello.c

実行方法

a.exeというファイルができたフォルダにコマンドプロンプトで移動し、 a.exeとコマンドラインに入力すると「Hello World!!」と出力されます。

>hello
Hello World!!

もっと知識を広げるための参考

更新履歴

戻る

スポンサーリンク

情報処理の知識体系

各試験の問題と解説

ランダム出題・採点アプリ

プログラミング

スポンサーリンク