# 繰り返し文
Swiftの繰り返し文には、for-in文、while文、repeat-whilte文などがあります。
# for-in文
for-in文は、要素を一つずつ取り出しながら繰り返し処理を実行させます。
for i in 1..<10 {
print(i)
}
// 1
// 2
// 3
// 4
// 5
// 6
// 7
// 8
// 9
Array型を使った場合は、以下になります。
let array = [1,2,3,4,5]
for val in array {
print(val)
}
// 1
// 2
// 3
// 4
// 5
Dictionary型を使った場合は、以下になります。
(key名, 値) in dictionary
で、Dictionary型のkeyと値を参照することができます。
let dictionary = ["1":10, "2":20, "3":30, "4":40, "5":50]
for (key, value) in dictionary {
print("\(key): \(value)")
}
// 5: 50
// 2: 20
// 1: 10
// 4: 40
// 3: 30
TIP
Dictionary型では、繰り返される要素の順番は保証されないので注意してください。
順番を保証したい場合は、KeyValuePairs
を使用してください。
(Swift5.0 以前は DictionaryLiteral
という名称でしたがSwift5.0以降では、KeyValuePairs
という名前になりました。)
// KeyValuePairs型を指定する
let dictionary: KeyValuePairs = ["1":10, "2":20, "3":30, "4":40, "5":50]
for (key, value) in dictionary {
print("\(key): \(value)")
}
// 1: 10
// 2: 20
// 3: 30
// 4: 40
// 5: 50
keyだけ取りたい時は、.keys
を使うことができます。
let dictionary = ["1":10, "2":20, "3":30, "4":40, "5":50]
for key in dictionary.keys {
print(key)
}
// 2
// 5
// 3
// 1
// 4
値だけとりたいときは、 .values
を使うことができます。
let dictionary = ["1":10, "2":20, "3":30, "4":40, "5":50]
for value in dictionary.values {
print(value)
}
// 20
// 30
// 40
// 50
// 10
# for-in stride文
for-in stride文は、一定の感覚で処理を繰り返すことができます。
for 変数 in stride(from: 開始値, to: 終了値, by: 間隔)
で指定することができます。
for num in stride(from: 1, to: 100, by: 10) {
print(num)
}
// 0
// 10
// 20
// 30
// 40
// 50
// 60
// 70
// 80
// 90
# while文
while文は、条件式を満たしてる間はずっと処理を繰り返します。
var a: Int = 0
while a < 10 {
print(a)
a += 1
}
// 0
// 1
// 2
// 3
// 4
// 5
// 6
// 7
// 8
// 9
# repeat-while文
while文は条件式がマッチした場合のみ実行されますが、repeat-while文では、条件を評価される前の初回は必ず実行されます。
以下は条件式にマッチしませんが、初回だけ実行されます。
var a: Int = 10
repeat {
print(a)
a += 1
} while a < 10
# break文
break文は、処理を途中で中断させることができます
for i in 1..<10 {
if i == 5 {
break
}
print(i)
}
// 1
// 2
// 3
// 4
# continue文
continue文は、処理を途中で中断させて、その次のループを実行させることができます。
// 5だけスキップさせる
for i in 1..<10 {
if i == 5 {
continue
}
print(i)
}
// 1
// 2
// 3
// 4
// 6
// 7
// 8
// 9