2012/04/24

C言語 if文

分岐if文の書き方

if(イフ)文は分岐制御をする。分岐には他にswitch文もあるが、プログラムの読みやすさを重視したもので、機能的にはif文ですべて可能であり、より柔軟性のある制御ができる。

基本的なif文

#include <stdio.h>
int main(void) {
  int a=6;
  if (a%2==0) {
      printf("%dは偶数です\n",a);
  }
  return 0;
}
最も基本的なスタイル。処理文は{}で囲む。処理文は{}内に複数あっても構わない。
6は偶数です


{}を省略したif文

#include <stdio.h>
int main(void) {
  int a=6;
  if (a%2==0) printf("%dは偶数です\n",a);
  return 0;
}
条件後の1文セミコロンまでを実行する。
6は偶数です


基本的な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{}の処理はされない。
7は奇数です


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{}を付けて、どの条件にも当てはまらない場合の処理をしておく。
aは2です


式の省略

#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以外では内部に入れるようだ。これをうまく使えば、条件式の簡略化も可能。
1
-1
12
-12


C言語 ANSI C89 Meadow & MinGW GCC 目次