読者です 読者をやめる 読者になる 読者になる

Swift,Objective-Cプログラミング ~ iOS ~

Objective-C,Swift,Apple Watchなどのプログラミング

【iOS Swift入門 #281】Swift3.0がリリースされて、改めてSwiftを勉強してわかったこと その1

この記事を読んでわかること

  • Swiftを改めて勉強した、私の気付き

Swift3.0での変更点だけでなく、今まで知らなかったことにも気づけました。

気づいたこと

repeat文

do whileの繰り返し構文でdoに代わって、repeatを使うことになった。 repeat while構文となった。使い方に変更はない。

// sumが100以上になるまで繰り返す
var index = 1
var  sum = 0
repeat{
    sum += index
    index += 1
}while sum < 100

print("\(sum)")

繰り返し構文にラベルを付けることができる

繰り返しがネストしているときに
continue <ラベル>
でラベルが付いている繰り返しに移動することができる。

// 九九の掛け算の結果を表示する
var x = 1
var y = 1

// xLoopというラベルをつける
xLoop: repeat{
    if x > 9{
        break
    }
    
    repeat{
        // yが9を超えたら、xLoopに移動する
        if y > 9{
            y = 1
            x += 1
            continue xLoop
        }
        print("\(x) * \(y) = \(x * y)")  // 1 * 1 = 1 のように表示される
        y += 1
    }while true
}while true

repeat文でなく、for文やwhile文でもラベルを使える。

switch文のcaseでRangeが使える

Swift3.0以前から使えていたかもしれない。

// BMIを計算し、結果を表示する
let weight = 59.0
let height = 168.0 / 100.0

let bmi = weight / (height * height)

switch bmi{
case 0.0..<18.5:
    print("低体重(痩せ型): \(bmi)")
case 18.5..<25.0:
    print("普通体重: \(bmi)")
case 25.0..<DBL_MAX:  // DBL_MAXはdouble型の最大値
    print("肥満: \(bmi)")
default:
    break
}

switch文に与えられた値に処理を加えた結果をcaseで評価する

Swift3.0以前から使えていたかもしれない。

// 年齢から選挙権があるか表示する
let age = 35

switch age{
case let x where x >= 18:
    print("選挙権あり")
default:
    print("選挙権なし")
}

↓のように書くこともできる。

let age = 35
switch age{
case _ where age >= 18:
    print("選挙権あり")
default:
    print("選挙権なし")
}

switch文でタプルを評価できる

// 性別と既婚かを表示

// gender 0:男性 1:女性
// married 0:未婚 1:既婚
let me = (gendar: 0, married: 1)

switch me{
case (0, 0):
    print("男性, 未婚")
case (0, 1):
    print("男性, 既婚")
case (1, 0):
    print("女性, 未婚")
case (1, 1):
    print("女性, 既婚")
default:
    break
}

↓のように評価に必要なければ、_(アンダースコア)で無視できる

// gender 0:男性 1:女性
// married 0:未婚 1:既婚
let me = (gendar: 1, married: 1)

switch me{
case (0, 0):
    print("男性, 未婚")
case (0, 1):
    print("男性, 既婚")
case (_, 0):
    print("女性, 未婚")
case (_, 1):
    print("女性, 既婚")
default:
    break
}

↓のようにwhereで条件もつけられた。

let result = (english:90, math: 30)
switch result{
case (let x, _) where x >= 90:
    print("英語すげえ")
default:
    print("普通")
}


参考情報

Swift

iOSアプリ開発未経験の人向け
・Swift初心者の人に評判が良いようですね


・わかりやすくていい、と聞いた本
立ち読みした感じだと【アプリ作成未経験の人向け】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】


②を終えたくらいの知識の方向け
・アプリ開発独学中に2冊めに購入した書籍
プログラミング知識はなくても、若干理解するのに時間がかかる程度で、
読み進められるわかりやすさがある。

iPhoneアプリ開発塾

iPhoneアプリ開発塾


③中級者、上級者向け

詳解 Swift

詳解 Swift

詳解 Swift 改訂版

詳解 Swift 改訂版