情報処理のWeb教科書―IPA情報処理試験対策のお供に!
トップ プログラミング C言語 入門 制御文の種類とフローチャートの書き方
プログラミングに無くてはならないのは制御文です。フローチャートの書き方を示しつつ、C言語の制御文(分岐)の方法について説明しています。
この記事の目次です。
1. 制御文とは
2. 選択
3. 繰返し
4. 再帰呼出し
5. 条件分岐(if、else)
6. 条件分岐(switch)
7. 繰り返し(for)
8. 繰り返し(while)
制御文とは、プログラムは上から下に実行されますが、途中で条件を分けたり、もとに戻ったりする制御を行う文を制御文といいます。 制御は大きく選択と繰返しに分けられ、C言語の制御文には、if else、switch、while、for文などがあります。
以下は制御文についての参考になります。
プログラム言語とは何かをテーマに、プログラミング言語の意味から、種類、特徴、体系、スタック領域やヒープ領域といった記憶域などの知識をまとめています。
基本的な制御構造の1つ、選択について見ていきます。
if文は条件に応じて処理を行うか行わないかを制御する制御構造です。
if-else文は条件に応じてある処理を行うか、そうではないときに別のある処理を行うかを制御する制御構造です。
基本的な制御構造の1つ、繰返しについて見ていきます。
while文、for文は条件に合う場合繰返し処理を行う制御構造です。
do-while文は初めに処理を行いその処理を条件に合う場合繰返し処理を行う制御構造です。
なお、ある関数や手続きの中で再びその関数や手続きを呼び出すことを再帰呼出しといいます。
Aであれば実行する、Aでなければ実行しないというような2方向の分岐を行う場合は、if文を使用します。 if文は「if(条件式) {処理A}」というように記述し、条件式が0以外の場合に処理Aが実行されます。
if(A) { Bの処理; } else if(C) { Dの処理; } else { それ以外の場合の処理; }
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
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のケース
for(条件) { 条件が成立する間行う処理; }
C言語で繰り返し処理を行う方法の1つに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!!
while(条件) { 条件が成立する間行う処理; }
C言語で繰り返し処理を行う方法の1つに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!!
C言語のプログラムの書き方から、for文、if文なのど構文、フローチャートの書き方など、C言語プログラミング入門レベルの内容を、簡単なプログラムなら自由に作成できるレベルを目指して、初歩的なC言語の基本文法についてみていきます。
Windowsでも使えるフリーソフトのgccコンパイラで学ぶC言語入門用のオリジナルテキストをまとめています。
プログラミング作法などプログラミングについてまとめています。Python、C言語、流れ図などプログラミングのオリジナル入門テキスト問形でまとめています。
Copyright (C) 2010-2023 情報処理のWeb教科書. All Rights Reserved. Loarding…