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 |





















