LoginSignup
8
8

SwiftでFizzBuzz(Playgroundで無駄にキャプチャ)

Last updated at Posted at 2014-11-25

XCPCaptureValueを無駄に併用した。
iの値をそれぞれfizzとbuzz定数でキャプチャしてみると面白い。

キャプチャで生成されたグラフ

スクリーンショット 2014-11-26 2.28.32.png

普通のFizzBuzz

TestPlayground.playground

import UIKit
import XCPlayground

let fizz     = "Fizz"
let buzz     = "Buzz"
let fizzbuzz = fizz + buzz
let others   = "Others"

for i in 1...100 {
    if i % 3 == 0 && i % 5 == 0 {
        println(fizzbuzz)
        XCPCaptureValue(fizzbuzz, i)
    }
    else if i % 3 == 0 {
        println(fizz)
        XCPCaptureValue(fizz, i)
    }
    else if i % 5 == 0 {
        println(buzz)
        XCPCaptureValue(buzz, i)
    }
    else {
        println(i)
        XCPCaptureValue(others, i)
    }
}

タプルに修正したFizzBuzz

FizzBuzzPlayground.playground
enum FizzBuzzResult {
    case FIZZ
    case BUZZ
    case FIZZBUZZ
    case OTHERS(Int)
    
    func toString() -> String {
        switch self {
        case .FIZZ:          return "Fizz"
        case .BUZZ:          return "Buzz"
        case .FIZZBUZZ:      return "FizzBuzz"
        case .OTHERS(let i): return String(i)
        }
    }
}

func fizzbuzz(i: Int) -> FizzBuzzResult {
    switch (i % 3, i % 5) {
    case (0, 0):
        return .FIZZBUZZ
    case (0, _):
        return .FIZZ
    case (_, 0):
        return .BUZZ
    case _:
        return .OTHERS(i)
    }
}

for i in 1...100 {
    
    var retString = fizzbuzz(i).toString()
    
    println(retString)
    
    XCPCaptureValue("capture_i", i)
}

参考
ようこそ! Swift Playgroundsへ
XCPlayground Module Reference

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8