分岐if文の書き方
if(イフ)文は分岐制御をする。分岐には他にswitch文もあるが、プログラムの読みやすさを重視したもので、機能的にはif文ですべて可能であり、より柔軟性のある制御ができる。
基本的なif文
#include <stdio.h>
int main(void) {
int a=6;
if (a%2==0) {
printf("%dは偶数です\n",a);
}
return 0;
}
|
最も基本的なスタイル。処理文は{}で囲む。処理文は{}内に複数あっても構わない。
{}を省略したif文
#include <stdio.h>
int main(void) {
int a=6;
if (a%2==0) printf("%dは偶数です\n",a);
return 0;
}
|
条件後の1文セミコロンまでを実行する。
基本的なif~else文
#include <stdio.h>
int main(void) {
int a=7;
if(a%2==0) {
printf("%dは偶数です\n",a);
} else {
printf("%dは奇数です\n",a);
}
return 0;
}
|
条件がfalseのときの処理をelse{}で用意する。条件がtrueの場合はelse{}の処理はされない。
switch文の代替としてのif文
#include <stdio.h>
int main(void) {
int a=2;
if (a==0) {
printf("aは0です\n");
} else if(a==1) {
printf("aは1です\n");
} else if(a==2) {
printf("aは2です\n");
} else if(a==3) {
printf("aは3です\n");
} else {
printf("aは0,1,2,3以外です\n");
}
return 0;
}
|
if~elseを複数つなげることでswitch文のような処理ができる。コードの見やすさはswitch文が上だが、条件等の柔軟性ではif文が上。最後にはelse{}を付けて、どの条件にも当てはまらない場合の処理をしておく。
式の省略
#include <stdio.h>
int main(void) {
if (0) {
printf("0\n");
}
if (1) {
printf("1\n");
}
if (-1) {
printf("-1\n");
}
if (12) {
printf("12\n");
}
if (-12) {
printf("-12\n");
}
return 0;
}
|
if文の条件式に数値だけを入れて試してみた。結果は以下の通りで、0以外では内部に入れるようだ。これをうまく使えば、条件式の簡略化も可能。
C言語 ANSI C89 Meadow & MinGW GCC 目次