/*THK Analytics用解析タグ*/

【プログラミング言語C】
第3章 制御の流れ

2022年8月17日


この章に関しても、詳細は書籍を読んで頂くとしてここでは、簡単に要点のみ説明します。

文について

c言語ではセミコロン;が文の終了を示しています。
初心者やpythonから来た方は忘れがちですので注意してください。
大抵のコンパイラは「セミコロンを忘れていますよ」などと易しいコメントを吐くことはなく、意味不明のエラーになりがちです。

C言語は比較的フォーマットが自由なのでセミコロンを付ければ1行に2つ以上の文を書くことも可能です。
動的メモリの解放とnullの書き込みなどは1行に書いた方が見やすいのでよく利用されます。
delete mem; mem = NULL;

if文

基本形

if文は制御の基本になります。
以下が基本構造です。

if (条件式) {

条件が真の際に実行されるブロック

} else {

条件が偽の際に実行されるブロック

}

ブロックとは{~}の間の事であり、複数の文を書くことが可能です。

偽条件の省略

偽の条件は省略する事が可能です。その際は以下のように記述します。

if (条件式) {

条件が真の際に実行されるブロック

}

複数条件

複数の条件を記述する事も出来ます

if (条件式1) {

条件1が真の際に実行されるブロック

} else if (条件式2) {

条件2が真の際に実行されるブロック

} else if (条件式3) {

条件3が真の際に実行されるブロック

} else {

すべての条件が偽の際に実行されるブロック

}

上記の式はこのように書くことも出来ます。
しかしネスト(段)が深くなり可読性が落ちてしまいます。

if (条件式1) {

条件1が真の際に実行されるブロック

} else {

if (条件式2) {

条件2が真の際に実行されるブロック

} else {

if (条件式3) {

条件3が真の際に実行されるブロック

} else {

すべての条件が偽の際に実行されるブロック

}

}

}

switch文

awitch文(case文と呼ぶ場合もあります)はある変数に対して複数の条件で分岐することが出来ます。
else if文にも似ていますが、else if文の条件は、どのような条件も設定出来るのに対し、switch文は一つの変数に対してのみ条件設定が出来る点が異なります。
if文などと同様に条件一致の内部は複数の文を書くことが出来ます。
注意点としては最後にbreak;文を入れること。
switchの真条件はbreak文を見つけるとswitchから脱出します。

switch(変数) {

case 定数1:

変数が定数1と同一の際に実行される
break;

case 定数2:

変数が定数2と同一の際に実行される
break;

case 定数3:

変数が定数3と同一の際に実行される
break;

default:

どの定数とも同一ではない場合に実行される

}

少しイレギュラーですがbreka文を削除すると複数の定数に対応する事が出来ます

switch(変数) {

case 定数1:
case 定数2:

変数が定数1もしくは定数2と同一の際に実行される
break;

case 定数3:

変数が定数3と同一の際に実行される
break;

default:

どの定数とも同一ではない場合に実行される

}

ループ文

 

C言語ではループ文はfor文、while文、do-while文が用意されています。

for文

for文は1行に初期値、ループ条件、変数を記述出来るので一番利用機会の多い書式になります。

for (変数初期値; 条件式; 変数変更) {

}

具体的には以下のように記述します。
for (int i = 0; i < 10; i++) {

}

これをフローチャートで示すとこのようになります。

for文については1章でも出てきました。

while文

最初にループ条件を判定して処理を行います。

while(条件式) {

条件が真の間、事項される

}

具体的にはこのように記述します。

int i = 0;
while (i < 10) {

文;
i++;

}

これをフローチャートで示すとこのようになります。
全くfor文と同じですね。このようにfor文とwhile文は置き換える事が出来ます。

 

 

do-while文

このループは先ほどまでとは異なり最後にループ条件を判定します。
while文との違いは、必ず1回は文が実行されることです。

do {

} while (条件式);

具体的にはこのように記述します。

int i = 0;

do {


i++;

} do while (i < 10);

 

これをフローチャートで示すとこのようになります。

 

今回はここまで。

C言語教室総合目次に戻る

 

C言語教室

Posted by taka