SlideShare a Scribd company logo
C言語入門
~ 条件分岐について ~
(switch case)
本日の目標
• 条件分岐(switch)について覚える
• if文とswitch文を使い分けられる
1
switch は if の親戚
if と switch の違い 3
#include <stdio.h>
int main(void)
{
int user;
scanf("%d", &user);
if (user == 0) {
printf("グーです。¥n");
} else if (user == 1) {
printf("チョキです。¥n");
} else if (user == 2) {
printf("パーです。¥n");
} else {
printf("無効です。¥n");
}
return 0;
}
#include <stdio.h>
int main(void)
{
int user;
scanf("%d", &user);
switch (user) {
case 0:
printf("グーです。¥n");
break;
case 1:
printf(“グーです。¥n");
break;
case 2:
printf("グーです。¥n");
break;
default:
printf("無効です。¥n");
break;
}
return 0;
}
if文 を使った場合 switch文 を使った場合
default は else と同義
#include <stdio.h>
int main(void)
{
int res;
printf("整数を入力してください。¥n");
scanf("%d", &res);
switch (res) {
case 1:
printf("1が入力されました。¥n");
break;
case 2:
printf("2が入力されました。¥n");
break;
default:
printf("1か2を入力してください。¥n");
break;
}
return 0;
}
switch文 を使う 4
「やさしいC」 p.134
入力するプログラム(Sample5.c)
break は必ず書く
#include <stdio.h>
int main(void)
{
int res;
printf("整数を入力してください。¥n");
scanf("%d", &res);
switch (res) {
case 1:
printf("1が入力されました。¥n");
case 2:
printf("2が入力されました。¥n");
default:
printf("1か2を入力してください。¥n");
}
return 0;
}
break を書かないと… 5
「やさしいC」 p.136
入力するプログラム(Sample5.c)
「2」を入力したときに、
「2が入力されました。」
「1か2を入力してください。」
と表示されてしまう
あえて break を書かないこともあるが、
バグを混入させる危険性があるので
必ず break を書くこと
if文 と switch文 の
使い分け
switch文 が使えるとき
• 条件が「x == 1」「x == 2」のように、
“ある変数(式)”と同じかどうか調べると
き
7
switch文 が使えないとき
• 「x == 1」「y == 2」のように、比較対
象の ”変数(式)” が一定でないとき
• 「x < 1」のように、不等号による比較の
とき
• 「x < 1 && y < 1」のように、複数条件
あるとき
8
switch文 を使った方が良いとき
前提:先のスライドの条件
• ある変数とたくさんの値を比較する場合
• if - else if が三つ以上続く場合
9
演習問題
演習問題①(switch文を使う)
• 単位の変換を行う
(ファイル名:ex09-01.c)
– 距離と単位を入力し、すべての距離をmmに換算して出力してください。
– 入力される距離の単位は
• k … キロメートル
• m … メートル
• c … センチメートル
• 入力例
– 1
– k
• 出力例
– 1000000 mm
11
演習問題② (switch文を使う)
• 逆ポーランド記法の計算機をつくる
(ファイル名:ex09-02.c)
– ふたつの値と演算子(+, -, *, /)を入力し、
計算結果を表示する
– ヒント:値は整数型、演算子は文字型
例:
入力「1」「2」「+」 → 1 + 2 → 出力「3」
入力「10」「20」「*」 → 10 * 20 → 出力「200」
12
演習問題③ (switch文を使う)
• じゃんけんゲームをつくる
(ファイル名:ex09-03.c)
– 0:グー、1:チョキ、2:パー
– 勝敗を表示する
(勝ち or 負け or あいこ)
13
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void){
int me; // 自分(入力する)
int cpu; // コンピュータ
srand(time(NULL));
cpu = rand() % 3;
// ここに処理を書く
return 0;
}

More Related Content

Viewers also liked

8_C言語入門 - 条件分岐について(if-else if-else)
8_C言語入門 - 条件分岐について(if-else if-else)8_C言語入門 - 条件分岐について(if-else if-else)
8_C言語入門 - 条件分岐について(if-else if-else)
bc_rikko
 
6_C言語入門 - 式と演算子について
6_C言語入門 - 式と演算子について6_C言語入門 - 式と演算子について
6_C言語入門 - 式と演算子について
bc_rikko
 
5_C言語入門 - 変数について
5_C言語入門 - 変数について5_C言語入門 - 変数について
5_C言語入門 - 変数について
bc_rikko
 
7_C言語入門 - 型変換について
7_C言語入門 - 型変換について7_C言語入門 - 型変換について
7_C言語入門 - 型変換について
bc_rikko
 
11_C言語入門 - 繰り返し処理について
11_C言語入門 - 繰り返し処理について11_C言語入門 - 繰り返し処理について
11_C言語入門 - 繰り返し処理について
bc_rikko
 
12_C言語入門 - 読みやすいソースコードを書く
12_C言語入門 - 読みやすいソースコードを書く12_C言語入門 - 読みやすいソースコードを書く
12_C言語入門 - 読みやすいソースコードを書く
bc_rikko
 
2_C言語入門 - VisualStudioについて
2_C言語入門 - VisualStudioについて2_C言語入門 - VisualStudioについて
2_C言語入門 - VisualStudioについて
bc_rikko
 
1-2_C言語入門 - プログラマに必要な能力
1-2_C言語入門 - プログラマに必要な能力1-2_C言語入門 - プログラマに必要な能力
1-2_C言語入門 - プログラマに必要な能力
bc_rikko
 
4_C言語入門 - n進数と基数変換について
4_C言語入門 - n進数と基数変換について4_C言語入門 - n進数と基数変換について
4_C言語入門 - n進数と基数変換について
bc_rikko
 
1-1_C言語入門 - C言語について
1-1_C言語入門 - C言語について1-1_C言語入門 - C言語について
1-1_C言語入門 - C言語について
bc_rikko
 
3_C言語入門 - C言語の基本
3_C言語入門 - C言語の基本3_C言語入門 - C言語の基本
3_C言語入門 - C言語の基本
bc_rikko
 
PHPとJavaScriptにおけるオブジェクト指向を比較する
PHPとJavaScriptにおけるオブジェクト指向を比較するPHPとJavaScriptにおけるオブジェクト指向を比較する
PHPとJavaScriptにおけるオブジェクト指向を比較する
kwatch
 
Quick tour of PHP from inside
Quick tour of PHP from insideQuick tour of PHP from inside
Quick tour of PHP from inside
julien pauli
 
ドラえもんの世界をオブジェクト指向で
ドラえもんの世界をオブジェクト指向でドラえもんの世界をオブジェクト指向で
ドラえもんの世界をオブジェクト指向でyaju88
 
関数型言語とオブジェクト指向言語(序章)
関数型言語とオブジェクト指向言語(序章)関数型言語とオブジェクト指向言語(序章)
関数型言語とオブジェクト指向言語(序章)
tadaaki hayashi
 
40分濃縮 PHP classの教室
40分濃縮 PHP classの教室40分濃縮 PHP classの教室
40分濃縮 PHP classの教室
Yusuke Ando
 
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!
Yuji Nojima
 
C言語講習会資料(前半)
C言語講習会資料(前半)C言語講習会資料(前半)
C言語講習会資料(前半)
Yuki Sako
 

Viewers also liked (18)

8_C言語入門 - 条件分岐について(if-else if-else)
8_C言語入門 - 条件分岐について(if-else if-else)8_C言語入門 - 条件分岐について(if-else if-else)
8_C言語入門 - 条件分岐について(if-else if-else)
 
6_C言語入門 - 式と演算子について
6_C言語入門 - 式と演算子について6_C言語入門 - 式と演算子について
6_C言語入門 - 式と演算子について
 
5_C言語入門 - 変数について
5_C言語入門 - 変数について5_C言語入門 - 変数について
5_C言語入門 - 変数について
 
7_C言語入門 - 型変換について
7_C言語入門 - 型変換について7_C言語入門 - 型変換について
7_C言語入門 - 型変換について
 
11_C言語入門 - 繰り返し処理について
11_C言語入門 - 繰り返し処理について11_C言語入門 - 繰り返し処理について
11_C言語入門 - 繰り返し処理について
 
12_C言語入門 - 読みやすいソースコードを書く
12_C言語入門 - 読みやすいソースコードを書く12_C言語入門 - 読みやすいソースコードを書く
12_C言語入門 - 読みやすいソースコードを書く
 
2_C言語入門 - VisualStudioについて
2_C言語入門 - VisualStudioについて2_C言語入門 - VisualStudioについて
2_C言語入門 - VisualStudioについて
 
1-2_C言語入門 - プログラマに必要な能力
1-2_C言語入門 - プログラマに必要な能力1-2_C言語入門 - プログラマに必要な能力
1-2_C言語入門 - プログラマに必要な能力
 
4_C言語入門 - n進数と基数変換について
4_C言語入門 - n進数と基数変換について4_C言語入門 - n進数と基数変換について
4_C言語入門 - n進数と基数変換について
 
1-1_C言語入門 - C言語について
1-1_C言語入門 - C言語について1-1_C言語入門 - C言語について
1-1_C言語入門 - C言語について
 
3_C言語入門 - C言語の基本
3_C言語入門 - C言語の基本3_C言語入門 - C言語の基本
3_C言語入門 - C言語の基本
 
PHPとJavaScriptにおけるオブジェクト指向を比較する
PHPとJavaScriptにおけるオブジェクト指向を比較するPHPとJavaScriptにおけるオブジェクト指向を比較する
PHPとJavaScriptにおけるオブジェクト指向を比較する
 
Quick tour of PHP from inside
Quick tour of PHP from insideQuick tour of PHP from inside
Quick tour of PHP from inside
 
ドラえもんの世界をオブジェクト指向で
ドラえもんの世界をオブジェクト指向でドラえもんの世界をオブジェクト指向で
ドラえもんの世界をオブジェクト指向で
 
関数型言語とオブジェクト指向言語(序章)
関数型言語とオブジェクト指向言語(序章)関数型言語とオブジェクト指向言語(序章)
関数型言語とオブジェクト指向言語(序章)
 
40分濃縮 PHP classの教室
40分濃縮 PHP classの教室40分濃縮 PHP classの教室
40分濃縮 PHP classの教室
 
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!
 
C言語講習会資料(前半)
C言語講習会資料(前半)C言語講習会資料(前半)
C言語講習会資料(前半)
 

Similar to 9_C言語入門 - 条件分岐について(switch case)

プログラマ講習第3回
プログラマ講習第3回プログラマ講習第3回
プログラマ講習第3回Yuma Yoshimoto
 
講座C入門
講座C入門講座C入門
講座C入門
Tokai University
 
プログラマ講習第2回
プログラマ講習第2回プログラマ講習第2回
プログラマ講習第2回Yuma Yoshimoto
 
X hago2 shortcoding 20110827
X hago2 shortcoding 20110827X hago2 shortcoding 20110827
X hago2 shortcoding 20110827
uskey512
 
Okinawapm #1
Okinawapm #1Okinawapm #1
Okinawapm #1
Kei Kamikawa
 

Similar to 9_C言語入門 - 条件分岐について(switch case) (6)

プログラマ講習第3回
プログラマ講習第3回プログラマ講習第3回
プログラマ講習第3回
 
講座C入門
講座C入門講座C入門
講座C入門
 
プログラマ講習第2回
プログラマ講習第2回プログラマ講習第2回
プログラマ講習第2回
 
X hago2 shortcoding 20110827
X hago2 shortcoding 20110827X hago2 shortcoding 20110827
X hago2 shortcoding 20110827
 
#5:プログラミングの基本
#5:プログラミングの基本#5:プログラミングの基本
#5:プログラミングの基本
 
Okinawapm #1
Okinawapm #1Okinawapm #1
Okinawapm #1
 

9_C言語入門 - 条件分岐について(switch case)