見出し画像

Swiftを始めよう! - for in、if、?。

コンピュータの得意な繰り返しと条件判定を使ったちょっとしたプログラムが例示してあります。

let individualScores = [75, 43, 103, 87, 12]

var teamScore = 0

for score in individualScores {
    if score > 50 {
        teamScore += 3
    } else {
        teamScore += 1
    }
}
print(teamScore)

まず配列individualScoresが[75, 43, 103, 87, 12]とteamScoreが"0"ということで定義してあります。これを使って繰り返し、判定して最後にprint()関数で出力します。

繰り返しですがfor in文です。

for score in individualScores {

繰り返す処理。

}

繰り返す処理には"individualScores"で定義してある配列の中の値を一つずつ取り出して使うことができます。

for score in individualScores {
print(score)
}

として実行してみると、75、43、103、87、12 と順番に出力されます。

順番に"score"に代入されていくので条件に合うものについて" teamScore" に加算していきます。

   if score > 50 {
        teamScore += 3
    } else {
        teamScore += 1
    }

最後結果は"11"と出てきます。

エラー回避のための対策としてオプショナル(optionals)という仕組みを使います。

オプショナルってなんだということですが、Swiftでは扱うべき値が存在しないことを表すために、nilという特別な値を使って表現します。その仕組みをオプショナルと呼びます。

使い方です。"?"をつけます。

    var optionalString: String? = "Hello"
    print(optionalString == nil)

これを実行すると"false"が出てきます。"false"なので"optionalString""nil"でない、値がありますということです。実際に"Hello"という値を代入しているので、値があるというのは良くわかります。

もう少し実際的な使い方を

    var optionalName: String? = "John Appleseed"
    var greeting = "Hello!"
    if let name = optionalName {
        greeting = "Hello, \(name)"
    }

if let name = optionalName

"optionalName"がnilでなかったら"name"に代入という意味です(unwrap:アンラップと呼びます)。nilの婆愛は実行されません。

nilの場合の処理をelseを使って書くことができます。

違う方法です。

    let nickname: String? = nil
    let fullName: String = "John Appleseed"
    let informalGreeting = "Hi \(nickname ?? fullName)"

もっと短く

    if let nickname {
        print("Hey, \(nickname)")
    }

nicknamenilでなければ実行されます。

この記事が気に入ったらサポートをしてみませんか?