2014年8月11日月曜日

開発環境

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

自分で考えてみよう(p.27)

コード(Xcode)

main.swift

//
//  main.swift
//  sample27
//
//  Created by kamimura on 8/11/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
}

while true {
    println("カード名を入力してください:")
    let name:NSString = input()
    if name == "" {
        break
    }
    
    var val:Int = 1
    
    switch name.substringToIndex(1)! {
    case "K":
        val = 10
    case "Q":
        val = 10
    case "J":
        val = 10
    case "A":
        val = 11
    default:
        val = name.integerValue
    }
    
    switch val {
    case 3...6:println("カウントが増えます。")
    case 10:println("カウントが減ります")
    default:break
    }
    
    switch name.substringToIndex(1)! {
    case "K":
        fallthrough
    case "Q":
        fallthrough
    case "J":
        val = 10
    case "A":
        val = 11
    default:
        val = name.integerValue
    }
    
    switch val {
    case 3...6:println("カウントが増えます。")
    case 10:println("カウントが減ります")
    default:break
    }
    
    switch name.substringToIndex(1)! {
    case "K", "Q", "J":
        val = 10
    case "A":
        val = 11
    default:
        val = name.integerValue
    }
    
    switch val {
    case 3...6:println("カウントが増えます。")
    case 10:println("カウントが減ります")
    default:break
    }
}

入出力結果(Console Output)

カード名を入力してください:
K
カウントが減ります
カウントが減ります
カウントが減ります
カード名を入力してください:
Q
カウントが減ります
カウントが減ります
カウントが減ります
カード名を入力してください:
J
カウントが減ります
カウントが減ります
カウントが減ります
カード名を入力してください:
A
カード名を入力してください:
10
カウントが減ります
カウントが減ります
カウントが減ります
カード名を入力してください:
7
カード名を入力してください:
6
カウントが増えます。
カウントが増えます。
カウントが増えます。
カード名を入力してください:
3
カウントが増えます。
カウントが増えます。
カウントが増えます。
カード名を入力してください:
2
カード名を入力してください:

Program ended with exit code: 0

0 コメント:

コメントを投稿