【Swift】繰り返し処理(for-in、while、repeat-while)

実行環境

  • Swift4
  • Xcode9.2

for-in文

for-in レンジ(終了値を含まない)

書式

for 変数 in 開始値 ..< 終了値 {
  // ステートメント
}

使用例

1から9の値を取り出す
// 1から10の値を取り出す
for i in 1..<10 {
    print("i: \(i)")
}
// 【結果】
// i: 1
// i: 2
// i: 3
// i: 4
// i: 5
// i: 6
// i: 7
// i: 8
// i: 9

for-in レンジ(終了値を含む)

書式

for 変数 in 開始値 ... 終了値 {
  // ステートメント
}

使用例

1から10の値を取り出す
// 1から10の値を取り出す
for i in 1...10 {
    print("i: \(i)")
}
// 【結果】
// i: 1
// i: 2
// i: 3
// i: 4
// i: 5
// i: 6
// i: 7
// i: 8
// i: 9
// i: 10

for-in コレクション

書式

for 変数 in コレクション {
  // ステートメント
}

使用例

コレクションから値を取り出す
// 配列
let arrayData = [3, 5, 8, 10]

for data in arrayData {
    print("data: \(data)")
}
// 【結果】
// data: 3
// data: 5
// data: 8
// data: 10


// 辞書
let dictionaryData = ["data1":10, "data2":20, "data3":30, "data4":40]

// 全ての要素を取り出す
for data in dictionaryData {
    print("data: \(data)")
}
// 【結果】
// data: (key: "data4", value: 40)
// data: (key: "data3", value: 30)
// data: (key: "data2", value: 20)
// data: (key: "data1", value: 10)

// 全ての要素を取り出す(キーと値をタプルに代入する)
for (key, data) in dictionaryData {
    print("key: \(key) value: \(data)")
}
// 【結果】
// key: data4 value: 40
// key: data3 value: 30
// key: data2 value: 20
// key: data1 value: 10

// 全てのキーを取り出す
for key in dictionaryData.keys {
    print("key: \(key)")
}
// 【結果】
// key: data4
// key: data3
// key: data2
// key: data1

// 全ての値を取り出す
for value in dictionaryData.values {
    print("value: \(value)")
}
// 【結果】
// value: 40
// value: 30
// value: 20
// value: 10

for-in stride

飛び飛びで繰り返す。

書式

for 変数 in stride(from: 開始値, to: 終了値, by: 間隔) {
  // ステートメント
}

使用例

10から50まで3つずつ増える値を取り出す
for num in stride(from: 10, to: 50, by: 3) {
    print("num: \(num)")
}
// 【結果】
// num: 10
// num: 13
// num: 16
// num: 19
// num: 22
// num: 25
// num: 28
// num: 31
// num: 34
// num: 37
// num: 40
// num: 43
// num: 46
// num: 49

while文

while

指定したループ条件を満たしている間は繰り返す。

書式

while (ループ条件) {
  // ステートメント
}

使用例

カウントが5を超えるまで繰り返す
var count = 0
var total = 0
while count < 5 {
    count += 1
    total += count
}
print("count: \(count) total: \(total)")
// 【結果】
// count: 5 total: 15

repeat-while文

repeat-while

まずは処理を実行した後で指定したループ条件をチェックし、満たしている間は実行する。
while文と違い、最低でも1回処理は行われる。

repeat {
  // ステートメント
} while (ループ条件)

使用例

カウントが1を超えるまで繰り返す
var count = 1
repeat {
    print("処理実行") // repeat-while文のため、この処理は最低1回実行される
    count += 1
} while(count < 1)
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.