[Swift] Swiftでいろんなfor文まとめてみた

公開日: : 最終更新日:2014/10/07 iPhone App 開発, Swift

いろんなfor文

プログラム作成で必ず出てくるfor文を自分なりにまとめてみました。
Swiftという言語は、色んな言語が交じった感じなので忘れないようにメモ。

基本的なfor文(数値の繰り返し)

for var i = 0; i < 5; i++ {
    println("\(i)")
}

CやJava、Javascriptでよく見かける基本的なfor文です。

結果

0
1
2
3
4

範囲指定のfor文

for i in 1...5 {
    println("\(i)")
}

[…]で範囲を出力します。

結果

1
2
3
4
5

範囲指定のfor文2

for i in 1..<5 {
    println("\(i)")
}

[..<]で範囲を出力しますが、最後の数値は含みません。

結果

1
2
3
4

配列を使ったfor文

let array = ["配列1", "配列2", "配列3"]
for value in array {
    println("\(value)")
}

配列のfor文です。従来のプラグラムとあまり変わりないですね。
もちろん、array[2]のように添字で値を取得できます。array[2]の場合は”配列3″が返ってきます。

結果

配列1
配列2
配列3

Dictionary(キーと値)を使ったfor文

let dictionary = ["1":"1の値", "2":"2の値", "3":"3の値"]
for (key, value) in dictionary {
    println("key:\(key) value:\(value)")
}

キーと値を持つDictionary(JavaではMap)形式でのfor文です。
とてもシンプルにキーと値が取得できます。

結果

key:2 value:2の値
key:3 value:3の値
key:1 value:1の値

あれ!? 順番がバラバラ…
ソートしないといけないんですね。当たり前か。
そして、直したコードがこれ。

let dictionary: [String : String] = ["1":"1の値", "2":"2の値", "3":"3の値"]
let sortedKeys = (dictionary as NSDictionary).keysSortedByValueUsingSelector("compare:")
for key in sortedKeys as [String] {
    if let value = dictionary[key] {
        println("key:\(key) value:\(value)")
    }
}

すごく長くなりました。全然シンプルじゃないし。
2行目でキーの文字列をソートして再格納。
3行目でソートのキーをfor文で繰り返し、key文字列を値があるかどうかチェックし、出力しています。
ちなみに4行目の値チェックをしないと値がちゃんと取得できません。Optional(値が決定していない?)だからだそうです…

結果

key:1 value:1の値
key:2 value:2の値
key:3 value:3の値

まとめ

簡単ではありますが、swiftでのfor文をまとめてみました。
特殊な点は範囲指定のfor文で、少しVBチックな手法ですね。
そして、dictionaryのfor文はかなり面倒でした。気をつけよう。。

ad

関連記事

[Swift] frameworkについて

先日、Swiftで実装されたライブラリをまとめたサイトを発見しました。 Swift Toolb

記事を読む

[Objective-C] UINavigationControllerのセグエを使って画面遷移をする

画面遷移の実装 今回はUINavigationControllerを使って画面遷移をしたいと思いま

記事を読む

[Swift] Asset Catalogについて

XCode5から追加されたAsset Catalog。 いままで標準のImages.xcasset

記事を読む

no image

迷走継続中!

どうも、僕です。 相変わらず迷走中な訳ですが、新たに迷走アイテムを入手しました。 その名

記事を読む

[Swift] スクリーンサイズを取得する

スクリーンサイズを取得 iPhoneの幅と高さを取得する関数を紹介します。 iOS8から画面の傾

記事を読む

[Swift] 画像を合成する

画像を合成 以下の2つの画像を合成してみます。円と四角です。 画像をプロジェクトに追

記事を読む

備忘録的メモ

Xcode5にアップデートして、とりあえずアプリを走らせてみたらナビゲーションバーがかぶってる・・・

記事を読む

[Swift] 定数クラスをつくってみる

Objective-cの場合 今回は共通にする定数をまとめるクラスを作ってみます。 まずはO

記事を読む

[Swift] プロパティリスト(plist)の値を取得

plistからデータを取得してみます。 こちらのエントリーも参考にしてみてください。 プロパテ

記事を読む

no image

OSSの使い方がわからない・・・。

チュートリアル系の、storyboradでview controllerを置いて画面遷移を設定してっ

記事を読む

ad

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ad

[PHP] curl転送してみる(googleに)

curlでgoogle画像検索APIにアクセスしてみます。 cu

[PHP] PDOでMySQLの接続確認をする

PDO PHPでMySQLに接続する際には、mysql_connec

[PHP] ランダムな英数字を生成する

便利系メソッド 今回はPHPでランダムな英数字を作成してみます。

[Swift] プロパティリスト(plist)の値を取得

plistからデータを取得してみます。 こちらのエントリーも参考にし

[Swift] Asset Catalogについて

XCode5から追加されたAsset Catalog。 いままで標準

→もっと見る

  • 1978年の七夕生まれ。 25才でweb業界の門を叩き、28才でフリーランスに。 現在は、フリーランスでマークアップ中心に、wordpressのカスタマイズやデザインをしております。 また、iPhoneアプリの開発もしております。
PAGE TOP ↑