計算機科学のブログ

Cを始める - Cの世界に飛び込む - switch文

Head First C ―頭とからだで覚えるCの基本David Griffiths(著)、 Dawn Griffiths(著)、 中田 秀基(監修)、 木下 哲也(翻訳)、 O’Reilly Media)の 1章(Cを始める - Cの世界に飛び込む)、p.27(自分で考えてみよう)の解答を求めてみる。

コード

main.c

#include <stdio.h>
#include <stdlib.h>
int main()
{
    char card_name[3];
    puts("カード名を入力してください:");
    scanf("%2s", card_name);
    int val = 0;
    switch (card_name[0])
    {
    case 'K':
    case 'Q':
    case 'J':
        val = 10;
        break;
    case 'A':
        val = 11;
        break;
    default:
        val = atoi(card_name);
    }
    if (3 <= val && val <= 6)
    {
        puts("カウントが増えます。");
    }
    else if (val == 10)
    {
        puts("カウントが減ります");
    }
}

入出力結果(Terminal, Zsh)

% cc main.c
% ./a.out 
カード名を入力してください:
Kong
カウントが減ります
% ./a.out
カード名を入力してください:
Queen
カウントが減ります
% ./a.out
カード名を入力してください:
Jack
カウントが減ります
% ./a.out
カード名を入力してください:
10
カウントが減ります
% ./a.out
カード名を入力してください:
3
カウントが増えます。
% ./a.out
カード名を入力してください:
4
カウントが増えます。
% ./a.out
カード名を入力してください:
6
カウントが増えます。
% ./a.out
カード名を入力してください:
7
%