【プログラミング言語C】
第3章 制御の流れ
この章に関しても、詳細は書籍を読んで頂くとしてここでは、簡単に要点のみ説明します。
文について
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);
これをフローチャートで示すとこのようになります。
今回はここまで。
ディスカッション
コメント一覧
まだ、コメントがありません