[iOS 8] Android脳に効く!新言語「Swift」超入門 #3 制御構造

とりあえず覚えておくといいこと

Swiftは…

  • 条件式に括弧をつけなくてもいい

if文

Javaと違うところと言えば条件式に括弧をつけなくてもいいところくらいで、まったく抵抗無く理解できると思います。

Swift Code

var age: UInt = 27

if age < 6 {
    print("義務教育前です。")
} else if 6...12 ~= age {
    print("小学生")
} else if 13..<16 ~= age {
    print("中学生")
} else {
    print("義務教育を終了しています。")
}
[/swift]
<p class="block_point"><strong><font color="#FFA500">CHECK!</font></strong><br>サンプルコード中のハイライトに注目して下さい。 この条件式には<strong>範囲演算子</strong>と<strong>パターンマッチ</strong>を行う比較演算子が含まれています。<strong>範囲演算子</strong>は<tt>...</tt>で終端を含む範囲、<tt>..〈</tt>で終端を含まないを表します。<strong>パターンマッチ</strong>では<tt>~=</tt>を使って左辺の範囲内に右辺がマッチする場合に<tt>true</tt>を返します。</p>
<h2 id="toc-switch">switch文</h2>
<p>文法自体は非常に見た慣れたものですが、switchに使う<strong>式</strong>、<strong>break</strong>、<strong>default</strong>の扱い方にJava(Java 6)との違いがあります。</p>
<p><span class="label_orange">Swift Code</span></p>

<h3>for-in</h3>
<p>for-in文を使って繰り返し処理を書く事ができます。Javaのfor-each文と同様のものです。</p>
<p><span class="label_gray">Java Code</span></p>

final String[] platforms = {"iOS", "Android", "WindowsPhone"};

for (String platform: platforms) {
    System.out.println(platform + "に対応!");
}

// iOSに対応!
// Androidに対応!
// WindowsPhoneに対応!

Swift Code

let platforms = ["iOS", "Android", "WindowsPhone"]

for platform in platforms {
    println("\(platform)に対応!")
}

// iOSに対応!
// Androidに対応!
// WindowsPhoneに対応!
CHECK!

var blogName = "Developers.IO"
println("クラスメソッドのブログ\(blogName)!みんな見てね!!")
// クラスメソッドのブログDevelopers.IO!みんな見てね!!

SwiftではJavaと同様に+等で文字列の連結が可能ですが、\(式)を用いて文字列リテラルに式を埋め込む事ができます。

while文

while、do-while文はJavaとの違いはほとんどありません。

Swift Code

var num1 = 5 while num1 < 8 { println("num1: \(num1)") num1++ } // num1: 5 // num1: 6 // num1: 7 var num2 = 10 do { println("num2: \(num2)") num2++ } while num2 < 5 // num2: 10 [/swift]

まとめ

ここまで、SwiftとJavaを比較しながら制御構造について書いてきました。それぞれの文法はほぼ同じといっていいでしょう。しかし、Swiftの制御構造の方が少し賢いような印象を受けました。評価に使えるオブジェクトや条件の書き方等をおさえておくと、Swiftの理解に役立つのではないかとおもいます。

次回は、関数とクロージャについてです。

バックナンバー

[iOS 8]Android脳に効く!新言語「Swift」超入門 #1 変数の宣言と型
[iOS 8]Android脳に効く!新言語「Swift」超入門 #2 Optional基礎
[iOS 8]Android脳に効く!新言語「Swift」超入門 #3 制御構造
[iOS 8]Android脳に効く!新言語「Swift」超入門 #4 関数とクロージャ
[iOS 8]Android脳に効く!新言語「Swift」超入門 #5 クラスとストラクチャ