if

ifは条件に従って実行するステートメントを変えます。

条件に応じて、あるステートメントを実行したり、あるいは、特定の条件のときにあるステートメントを実行しないようにしたいときがあります。 そのようなときに使う代表的な制御文がifステートメントです。
ifステートメントの書式は次のとおりです。


  if (expr)
    statement1;
  else
    statement2;
  

exprは条件式で、この式の値が真(true)であるとき、statement1が実行されます。 statement2は条件式が偽(false)のときに実行されます。Cでは、条件式exprを必ず(と)で囲むことに注意してください。

なお、条件式で、値が同じかどうかを演算子で調べるときには、==演算子(イコール2個、等値の場合)を使います。

次の例のように、比較のつもりで=(イコール1個)を使うと、実際には代入になり(dateが1になり)、 常に条件式が真であるとみなされ、常に「月はじめです。」と出力されてしまいます。


  if (date = 1)
    printf("("月はじめです。");
  

複数のif...elseステートメントを使って、ネストしたif...else構造を作ることもできます。


  if (expr)
    statement1;
  else if (condition2)
    statement2;
  else if (condition3)
    statement3;
    ...
  else
    statementN;
  

この場合、最初のifの条件式が偽であるときに、第2のifステートメントが評価されます。

次の例は、ネストしたif...else構造を使った例です。


  int date = 26; /* 日付 */
  printf("今日は、%d日です。date);
  if (date == 1)
    printf("今月のスケジュールを確認してください。");
  else
    if (date > 28)
      printf("来月のスケジュールはできていますか?");
    else
      if (date > 20)
        printf("来月のスケジュールを立てましょう。");
  

実行結果は次のようになります。


  今日は、26日です。
  来月のスケジュールを立てましょう。
  

この場合、日付が1日なら「今月のスケジュールを確認してください。」と出力し、 日付が21日~28日なら「来月のスケジュールを立てましょう。」と出力し、日付が29日以降なら「来月のスケジュールはできていますか?」と出力します。


関連項目

switch



C目次 inserted by FC2 system