「条件文(if文)」では、条件が成立した場合(真の場合)だけ特定の処理をしていました。
今回は、条件が不成立の場合(偽の場合)にも、指定した処理をする「if~else文」について解説します。
if~else文の仕組み
if~else文の構文は、次の通りです。
if( 条件 ) {
文1;
文2;
}
else {
文3;
文4;
}この構文では、条件が成立した場合(真の場合)に、文1、文2が処理され、文3、文4は処理されません。一方、条件が不成立した場合(偽の場合)に、文3、文4が処理され、文1、文2は処理されません。
このように、if文の条件が成立した場合は、if文の直後の { } 内の処理が実行されますし、if文の条件が不成立した場合は、else文の直後の { } 内の処理が実行されます。
処理は、1文でも複数文でも処理可能です。
また、1文の場合は、{ } を省略できますが、「条件文(if文)」に記載しているとおり、推奨されていませんので、解説は割愛します。
試しに次のソースコードを記述して試してみてください。
#include <stdio.h>
int main(void)
{
int number;
printf("5を入力してください。\n");
scanf("%d", &number);
if( number == 5 ) {
printf("5が正しく入力されました。\n");
}
else {
printf("5以外が入力されました。\n");
}
printf("処理が終了しました。\n");
return 0;
}5を入力した場合の結果
5を入力してください。
5
5が正しく入力されました。
処理を終了しました。5以外(1)を入力した場合の結果
5を入力してください。
1
5以外が入力されました。
処理を終了しました。if( number == 5 ) は、「変数numberの値が5の場合」という条件が成立した場合、if文の直後の { } 内の文であるprintf("5が正しく入力されました。\n"); が実行されましたが、else文の直後の { } 内の文は実行されていないことがわかります。
また、条件が満たされていない場合(偽の場合)は、else文の直後の { } 内の文である printf("5以外が入力されました。\n"); が実行されましたが、if文の直後の文は実行されていないことがわかります。
このように、if文の括弧内に条件を記述し、条件が成立した場合、直後にある{ } 内にある文が実行され、条件が不成立した場合、else文の直後にある { } 内にある文が実行されます。
まとめ
- if~else文を用いると、if文の条件が成立した場合は、if文の直後の 文が実行され、条件が不成立した場合は、else文の直後の文が実行される。