C言語 | フロー制御 | if文
if 文は、条件に応じて実行するコードを選択する。
プログラムの分岐
if 文は、条件が真の場合だけ文を実行する。
if (条件) 文
C言語では、0を偽、0以外を真として扱う。
コード1
#include <stdio.h>
int main() {
int iBool;
printf("0または別の値を入力してください。 >");
scanf("%d" , &iBool);
if (iBool) printf("真が入力されました。\n");
if (!iBool) printf("偽が入力されました。\n");
return 0;
}
条件が偽の場合に別の文を実行するには else を使う。
if (条件) 文1
else 文2
コード2
#include <stdio.h>
int main() {
int iBool;
printf("0または別の値を入力してください。 >");
scanf("%d" , &iBool);
if (iBool) printf("真が入力されました。\n");
else printf("偽が入力されました。\n");
return 0;
}
複数の選択肢を判定するには else if を連結する。
コード3
#include <stdio.h>
int main() {
char chVar;
printf("C言語が好きですか? Y/N>");
scanf(" %c" , &chVar);
if (chVar == 'Y' || chVar == 'y')
printf("そのまま学習を続けましょう。\n");
else if (chVar == 'N' || chVar == 'n')
printf("それでも続けてみましょう。\n");
else
printf("入力が正しくありません。\n");
return 0;
}
複合文
if や else が制御する文は1つである。複数の文をまとめて実行するには、ブロックとも呼ばれる複合文を使う。
{
文1
文2
}
入れ子になったブロックは一貫してインデントし、構造を読みやすくする。
コード4
#include <stdio.h>
int main() {
int iBool;
printf("0または別の値を入力してください。 >");
scanf("%d" , &iBool);
if (iBool) {
printf("真が入力されました。\n");
return 1;
}
else {
printf("偽が入力されました。\n");
return 0;
}
}