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

web帳

記事詳細

2016.07.02

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

c-lan

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

if文 (if statement)

if文 構文

[code]if (条件)
文;[/code]

例文

[code]#include <stdio.h>
int main(void)
{
int res;

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

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

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

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

return 0;
}[/code]

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

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

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

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

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

[code]if(res == 5) {

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

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

if else ~ 文

[code]if(res == 5) {

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

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

} else {

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

}

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

if else if ~ 文

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

[code]#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;

}[/code]

整数6が入力された場合

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

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

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

switch文(switch statement)

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

switch文 構文

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

例文

[code]#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;
}[/code]

整数6が入力された場合

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

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

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

論理演算子 (logical operator)

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

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

op_01

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

op_02

全体
! 右辺が偽の場合

op_03

全体

例文:

[code]#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;
}[/code]

Yと入力結果

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

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

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

[code]条件 ? 真の時の式1 : 偽の時式2[/code]

例文:
[code]#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;
}[/code]

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