[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

関連記事

[Objective-C] no architectures to compile for … のコンパイルエラーについて

起動したプロジェクトでコンパイルエラーが出ました。 no architectures to com

記事を読む

[Swift] 関数型プログラミング

関数型プログラミングについて、ストーリー仕立ての面白い記事がありましたので紹介します。 IQ1

記事を読む

[Swift] ビルド時のエラー&iOS8でNSBigDecimalのバグ

ビルド時のエラー Swiftプロジェクトを実行中に以下のエラーが出ました。 "__TFSs15_

記事を読む

備忘録的メモ

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

記事を読む

[Swift] optional値の設定(??)

optional値がnilの時 プロジェクトでのテンプレートを選択した時にソースコードが自動生成さ

記事を読む

no image

爆走中!

挫折街道爆走中です! が! 迷走中でもあるわけです、はい。 そんな中で、迷走するに至った訳

記事を読む

[Swift] Asset Catalogについて

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

記事を読む

no image

一旦、離脱中!

サイト制作の仕事がちょろちょろちょろっと入ってきたので、寂しいけれどしばしXcodeとはお別れ。

記事を読む

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

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

記事を読む

iPhoneApp WorkManager公開されました!

きっとリジェクトされるんだろうなと思いながら申請を出して1週間。 本日、公開のメールが届きまし

記事を読む

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 ↑