このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

web帳

記事詳細

2016.07.02

C言語 if文・switch文・論理演算子

c-lan

C言語 if文・switch文・論理演算子をつらつらと。

if文 (if statement)

if文 構文

if (条件)
  文;

例文

#include <stdio.h>
int main(void)
{
  int res;
  
  printf("整数を入力してください。¥n");
  
  scanf("%d", &amp;res);

  if(res == 5) printf("5が入力されました。 ¥n");

  printf("処理を終了します。¥n");

  return 0;
}

整数 5が入力された場合。

スクリーンショット 2016-08-13 16.25.02

整数 5以外が入力された場合。

スクリーンショット 2016-08-13 16.25.17

複数の処理を行う場合はブロック指定で行います。

if(res == 5) {

  printf("5が入力されました。 ¥n");

  printf("入力ありがとうございます!  ¥n");
}
if else ~ 文
if(res == 5) {

  printf("5が入力されました。 ¥n");

  printf("入力ありがとうございます!  ¥n");

} else {

  printf("5以外が入力されました。 ¥n");

}

printf("処理を終了します。¥n");
if else if ~ 文

続けて条件を含める場合は、if else if~文で指定。

#include <stdio.h>

int main(void)
{
  int res;

  printf("整数を入力してください。¥n");

  scanf("%d", &amp;res);

  if(res == 5) {
    printf("5が入力されました。 ¥n");
  }
  else if(res == 6) {
    printf("6が入力されました。 ¥n");
  }
  else {
    printf("5、6以外が入力されました。 ¥n");
  }

printf("処理を終了します。¥n");

return 0;

}

整数6が入力された場合

スクリーンショット 2016-08-13 16.36.46

整数5,6以外が入力された場合。

スクリーンショット 2016-08-13 16.36.31

switch文(switch statement)

C言語のswitch文は以下のとおりになります。

switch文 構文

switch(式) {
  case 定数1:
    文1;
    ....
    break;
  case 定数2:
    文2;
    ....
    break;
  default:
    文D;
    ....
    break;
}

例文

#include <stdio.h>
int main(void)
{
  int res;
  printf("整数を入力してください。¥n");

  scanf("%d", &amp;res);

  switch(res) {
    case 5:
      printf("5が入力されました。 ¥n");
      break;
    case 6:
      printf("6が入力されました。 ¥n");
      break;
    default:
      printf("5、6以外が入力されました。 ¥n");
      break;
  }
  
  printf("処理を終了します。¥n");

  return 0;
}

整数6が入力された場合

スクリーンショット 2016-08-13 16.46.14

整数5,6以外が入力された場合。

スクリーンショット 2016-08-13 16.46.22

論理演算子 (logical operator)

論理演算子の役割として、「条件をさらに評価して、真または偽の値を得る」という役割になります。

演算子 真となる場合 評価
&& 左辺・右辺がともに真の場合

op_01

全体
|| 左辺・右辺のどちらかが真の場合

op_02

全体
! 右辺が偽の場合

op_03

全体

例文:

#include <stdio.h>
int main(void)
{
  char res;

  printf("あなたは男性ですか? ¥n");
  printf("YまたはNを入力してください。 ¥n");

  res = getchar();
  
  if(res == 'Y' || res == 'y') {
    printf("男性でしたか。。 ¥n");
  } 
  else if(res == 'N' || res == 'n') {
    printf("女性でしたか。。 ¥n");
  }
  else {
    printf("YかNを入力してください。 ¥n");
  }

  return 0;
}

Yと入力結果

スクリーンショット 2016-08-13 17.34.16

条件演算子(三項演算子)

条件演算子(三項演算子)構文

条件 ? 真の時の式1 : 偽の時式2

例文:

#include <stdio.h>

int main(void)
{

  int res;
  char ans;

  printf("何番目を選びますか? ¥n");

  printf("整数を入力してください。 ¥n");

  scanf("%d", &amp;res);
  ans = (res == 1) ? 'A' : 'B';

  printf("%cコースを選択しました。¥n", ans);

  return 0;
}

1を入力。

スクリーンショット 2016-08-13 17.54.52

ビット演算子

 

ビット演算子は「2進数で表した1つまたは2つの数値のそれぞれのケタについて、0か1のどちらかを返す」演算となっております。

演算子 真となる場合 評価
& 左辺・右辺のビットがともに1の場合

op_11

全体
0 0 0
0 1 0
1 0 0
1 1 1
| 左辺・右辺のビットのどちらかが1の場合

op_12

全体
0 0 0
0 1 1
1 0 1
1 1 1
^ 左辺・右辺のビットが異なる場合

op_13

全体
0 0 0
0 1 1
1 0 1
1 1 0
~ 右辺のビットが0の場合

op_14

全体
0 1
1 0

例として、10進数の「10」と「12」のビット演算子をやってみます。

10 10の2進数 12の2進数 結果 2進数 結果 10進数
& 1010 1100 1000 8
| 1010 1100 1110 14
^ 1010 1100

110

 6
~  1010 1111111111110101  -11

  • RSSを登録する

  • follow us in feedly

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、港区六本木で活動中。

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。