LoginSignup
49
41

More than 3 years have passed since last update.

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

Last updated at Posted at 2018-04-04

実行環境

  • Swift4
  • Xcode9.2

for-in文

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

書式

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

使用例

1から9の値を取り出す
// 1から9の値を取り出す
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)
49
41
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
49
41