2014年8月12日火曜日

開発環境

Head First C ―頭とからだで覚えるCの基本(David Griffiths (著)、Dawn Griffiths (著) 中田 秀基(監訳)(翻訳)、木下 哲也 (翻訳)、オライリージャパン)の1章(Cを始める: Cの世界に飛び込む)、エクササイズ(p.35)をSwiftで考えてみる。

エクササイズ(p.35)

コード(Xcode)

main.swift

//
//  main.swift
//  sample35
//
//  Created by kamimura on 8/12/14.
//  Copyright (c) 2014 kamimura. All rights reserved.
//

import Foundation

// 標準入力(STDIN)から読み込む
func input(msg:String = "") -> String {
    print(msg)
    var in_fh = NSFileHandle.fileHandleWithStandardInput()
    var data = in_fh.availableData
    var s = NSString(data: data, encoding: NSUTF8StringEncoding)
    s = s.substringToIndex(s.length - 1)
    return s
}

var name:NSString
var count:Int = 0

do {
    println("カード名を入力してください:")
    name  = input()
    var val:Int = 0
    switch name.substringToIndex(1)! {
    case "K", "Q", "J":
        val = 10
    case "A":
        val = 11
    case "X":
        continue
    default:
        val = name.integerValue
        if val < 1 || val > 10 {
            println("整数は1から10の範囲を入力してください。")
            continue
        }
    }
    
    switch val {
    case 3...6:
        count += 1
    case 10:
        count -= 1
    default:break
    }
    println("現在のカウント: \(count)")
} while name.substringToIndex(1) != "X"


入出力結果(Console Output)

カード名を入力してください:
K
現在のカウント: -1
カード名を入力してください:
Q
現在のカウント: -2
カード名を入力してください:
J
現在のカウント: -3
カード名を入力してください:
A
現在のカウント: -3
カード名を入力してください:
10
現在のカウント: -4
カード名を入力してください:
7
現在のカウント: -4
カード名を入力してください:
6
現在のカウント: -3
カード名を入力してください:
3
現在のカウント: -2
カード名を入力してください:
2
現在のカウント: -2
カード名を入力してください:
1
現在のカウント: -2
カード名を入力してください:
0
整数は1から10の範囲を入力してください。
カード名を入力してください:
10
現在のカウント: -3
カード名を入力してください:
11
整数は1から10の範囲を入力してください。
カード名を入力してください:
X
Program ended with exit code: 0

0 コメント:

コメントを投稿