Edited at

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

More than 1 year has passed since last update.


実行環境


  • 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)