C言語

条件文(if~else文)

条件文(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文の直後の文が実行される。

-C言語