-- C言語の制御文とブロック --
C言語のif文は if (条件) 単文 else if (条件) 単文 else 単文 です。
例えば、int型の変数が0~10までの値をとるとき i < 0 で Underflow i > 10 でOverflow その他の場合 iの値を表示するプログラムがあったとすると if 文は
if (i < 0) printf("Underflow\n"); else if (i > 10) printf("Overflow\n"); else printf("i=%d\n",i);
複数の文を入れる場合は { } でくくって複数文を1つのブロックにまとめます。
ブロックの中で自動変数(ローカル)を宣言した場合、その変数は { } 中のみで有効です。
#include <stdio.h>
int main() {
int i;
for(i=-10; i < 20; i++) {
if (i < 0) printf("Underflow\n");
else if (i > 10) printf("Overflow\n");
else { int i=0;
printf("i=%d\n",i);
}
}
printf("i=%d\n",i);
return 0;
}
C言語で制御文に続くのは、ほぼ単文(switch caseは除く)であることに注意してください。
更に例に挙げた for 文に続く { } は範囲を明確にするためにあえてつけているだけで本来は不要です。