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

Archives Details

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

C

2016.07.02

この記事は最終更新日から1年以上が経過しています。

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

Comment

Related Article

M1 Macで、OpenGL GLUTを使ってコンパイルする

2024.04.27

Mac(gcc)で、C言語関数 getch関数を使う。

2020.12.05

Mac Home brewでSDL2.0を簡単に環境設定

2020.06.24

C言語 配列

2016.07.04

C言語 繰り返し文

2016.07.03

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

2016.07.02

C言語の基礎・基本

2016.07.01

Macでの C・C++言語 のエディタ・IDE選び

2016.07.01

CATEGORY LIST

LATEST NEWS

Rustで創る MOS 6502 CPU その3 (Cursorと共に)

Rust

2025.02.24

あけましておめでとうございます(24日経過)

イベント

2025.01.24

アーキテクチャConference 2024に参加してきました。

イベント

2024.11.28

Mac minicomでシリアル通信を行う

電子工作

2024.11.21

Mac 容量足りない問題は、外付けSSDで快適に解決!おすすめ外付けSSD

mac

2024.10.16

Z80エミュレータ- EMUZ80の組み立て

電子工作

2024.10.13

Mac VSCodeで、SFML C++開発環境を作る。

C++

2024.09.09

Rust-SDL2 examplesをすべて試す

Rust

2024.09.01

JavaScriptで、DOMを放り投げる処理

JavaScript

2024.07.27

Rustで創る MOS 6502 CPU その2

Rust

2024.07.23

Rustで創る MOS 6502 CPU その1

Rust

2024.07.19

汎用 3D mesh/model viewerを求め。と、簡単に、FBXファイルをglTF(glb)に変換ツールを求め。

C++

2024.06.06

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

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

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

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

FOLLOW US