はじめての C

[Learning GNU C]

4.2. if ... else

if 命令文の 2つ目の 形に 条件式 test expression が 偽のとき (別の) code の ブロックの 実行を また 指定させるものが ある。 これは "if ... else" 命令文として 知られ 通常の if 命令文の 後に 予約語 reserved word の "else" と 別の code の ブロックを 置く 形を とる。 プログラムでは if の 後ろの 条件文に もとづく 2つの code の 内の 1つが 実行される。 どのように 表すかが これだ。

Example 4-2. cows2.c

int
main()
{
int cows = 0;

if (cows > 1) {
printf("ウシを 飼ってる\n");
printf("ちょうど %d 頭だけ\n", cows);
}
else {
if (cows == 0)
printf("全然 ウシは 飼ってない\n");
else
printf("1頭だけ ウシを 飼ってる\n");
}
if (cows > 10)
printf("おそらく 多いはず\n");

return 0;
}

ここの 出力は 推測できるだろう。

ciaran@poor:~/book$ ./cows2
1頭だけ ウシを 飼ってる
ciaran@poor:~/book$

この例題では 1つの if ... else 命令文の 内側に 別の if ... else 命令文が ある。 これは C の 理に 適っていて まったく 普通の ことだ。 別に 使うことが できる 分岐の 形が あるが それは ほんの 少し 複雑なので この章の 最後に 取っておこう。