制御フロー
スポンサーリンク
if 文
if (条件式1) 文1
else if (条件式2) 文2
...
else 文<sub>else</sub>
if 文の else-if 節,else 節はそれぞれ省略できます。
次のプログラムは,整数 a, b の大小を判定する例です。
#include <stdio.h>
int main(void)
{
int a = 2, b = 3;
if (a == b)
printf("a = b\n");
else if (a > b)
printf("a > b\n");
else
printf("a < b\n");
return 0;
}
a < b
複文
ブロック { ... } で 1 つ以上の文を囲んだものは,複文またはブロック文と呼ばれ,文法的には文の一種です。
if 文や for 文などで複数の文を記述したいときは,複文を用います。
if (a > b) {
tmp = a;
a = b;
b = a;
}
switch 文
switch 文は case 定数: というラベルを持つ制御構文です。
switch (選択式) {
case 定数1:
処理1
break;
case 定数2:
処理2
break;
...
default:
処理<sub>def</sub>
break;
}
次のプログラムは,month の値によって処理を振り分ける例です。
```c
#include <stdio.h>
int main(void)
{
int month = 7, days;
switch (month) {
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
days = 28;
break;
default:
days = 31;
break;
}
printf("%d\n", days);
return 0;
}
31
対応する case ラベルが存在しなければ,default: へ処理が移る (default 節は省略可能)。
for 文
for (初期化部; 条件式; 増分処理) 文
次のコードは,for 文を使って 0 から 4 までの数を数え上げる例です。
#include <stdio.h>
int main(void)
{
int i;
for (i = 0; i < 5; i++)
printf("%d\n", i);
return 0;
}
0
1
2
3
4
while 文
while (条件式) 文
次のコードは,while 文を使って 0 から 4 までの数を数え上げる例です。
i = 0;
while (i < 5)
printf("%d\n", i++);
while 文の後判定バージョンとして,do-while 文も利用できます。
do 文 while (条件式);
break/continue 文
break 文はループを脱出するために用います。
for (i = 0; i < 5; i++) {
if (i == 3) break;
printf("%d\n", i);
}
0
1
2
continue 文はループ処理を 1 ステップ飛ばすために用います。
for (i = 0; i < 5; i++) {
if (i == 3) continue;
printf("%d\n", i);
}
0
1
2
4
goto 文
次のコードは,goto 文を使って 0 から 4 までの数を数え上げる例です。
i = 0;
Loop:
printf("%d\n", i);
if (i < 5) goto Loop;
スポンサーリンク