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

14
C 言言言言 言言言言言言言言 switch case

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

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

C 言語入門~ 条件分岐について ~

( switch case )

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

2本日の目標

• 条件分岐( switch )について覚える

• if 文と switch 文を使い分けられる

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

switch は if の親戚

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

4if と switch の違い

#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 と同義

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

5

#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 文 を使う

「やさしい C 」 p.134

入力するプログラム( Sample5.c )

break は必ず書く

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

6

#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 を書かないと…

「やさしい C 」 p.136

入力するプログラム( Sample5.c )

「 2 」を入力したときに、「2が入力されました。」

「 1 か 2 を入力してください。」と表示されてしまう

あえて break を書かないこともあるが、

バグを混入させる危険性があるので必ず break を書くこと

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

if 文 と switch 文 の使い分け

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

8switch 文 が使えるとき

• 条件が「 x == 1 」「 x == 2 」のように、

“ある変数(式)”と同じかどうか調べると

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

9switch 文 が使えないとき

• 「 x == 1 」「 y == 2 」のように、比較

対象の ”変数(式)” が一定でないとき

• 「 x < 1 」のように、不等号による比較

のとき

• 「 x < 1 && y < 1 」のように、複数条件

あるとき

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

10switch 文 を使った方が良いとき

前提:先のスライドの条件

• ある変数とたくさんの値を比較する場合

• if - else if が三つ以上続く場合

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

演習問題

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

12演習問題①( switch 文を使う)

• 単位の変換を行う(ファイル名: ex09-01.c )

– 距離と単位を入力し、すべての距離を mm に換算して出力してください。

– 入力される距離の単位は• k … キロメートル• m … メートル• c … センチメートル

• 入力例– 1– k

• 出力例– 1000000 mm

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

13演習問題② ( switch 文を使う)

• 逆ポーランド記法の計算機をつくる(ファイル名: ex09-02.c )

–ふたつの値と演算子 (+, -, *, /) を入力し、

計算結果を表示する

–ヒント:値は整数型、演算子は文字型例:

入力「 1 」「 2 」「 + 」 → 1 + 2 → 出力「 3 」

入力「 10 」「 20 」「 * 」 → 10 * 20 → 出力「 200 」

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

14演習問題③ ( switch 文を使う)

• じゃんけんゲームをつくる(ファイル名: ex09-03.c )

– 0: グー、 1: チョキ、 2: パー

–勝敗を表示する(勝ち or 負け or あいこ)

#include <stdio.h> #include <stdlib.h> #include <time.h>

  int main(void){ int me; // 自分 ( 入力する ) int cpu; // コンピュータ

srand(time(NULL)); cpu = rand() % 3;

// ここに処理を書く   return 0; }