C言語 if文・switch文・論理演算子
2016.07.02
この記事は最終更新日から1年以上が経過しています。
C言語 if文・switch文・論理演算子をつらつらと。
if文 (if statement)
if文 構文
if (条件) 文;
例文
#include <stdio.h> int main(void) { int res; printf("整数を入力してください。¥n"); scanf("%d", &res); if(res == 5) printf("5が入力されました。 ¥n"); printf("処理を終了します。¥n"); return 0; }
整数 5が入力された場合。
整数 5以外が入力された場合。
複数の処理を行う場合はブロック指定で行います。
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", &res); if(res == 5) { printf("5が入力されました。 ¥n"); } else if(res == 6) { printf("6が入力されました。 ¥n"); } else { printf("5、6以外が入力されました。 ¥n"); } printf("処理を終了します。¥n"); return 0; }
整数6が入力された場合
整数5,6以外が入力された場合。
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", &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が入力された場合
整数5,6以外が入力された場合。
論理演算子 (logical operator)
論理演算子の役割として、「条件をさらに評価して、真または偽の値を得る」という役割になります。
演算子 | 真となる場合 | 評価 | |||||||||||||||
&& | 左辺・右辺がともに真の場合
|
|
|||||||||||||||
|| | 左辺・右辺のどちらかが真の場合
|
|
|||||||||||||||
! | 右辺が偽の場合
|
|
例文:
#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と入力結果
条件演算子(三項演算子)
条件演算子(三項演算子)構文
条件 ? 真の時の式1 : 偽の時式2
例文:
#include <stdio.h> int main(void) { int res; char ans; printf("何番目を選びますか? ¥n"); printf("整数を入力してください。 ¥n"); scanf("%d", &res); ans = (res == 1) ? 'A' : 'B'; printf("%cコースを選択しました。¥n", ans); return 0; }
1を入力。
ビット演算子
ビット演算子は「2進数で表した1つまたは2つの数値のそれぞれのケタについて、0か1のどちらかを返す」演算となっております。
演算子 | 真となる場合 | 評価 | |||||||||||||||
& | 左辺・右辺のビットがともに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 |