for

for文は繰りかえし行いたい処理がある時に使います。

Swiftのfor文はC言語などのfor文がそのまま使えないため注意です!

基本文法

基本的な書き方は以下の2つです。1つ目が配列などを1つずつ取り出してループするfor書き方で、2つめはレンジ演算子を使ったC言語などの従来の書き方に近いforの書き方です。

for item in items {
  //code
}
for i in 0..< 10{
  //code
}

for文でカウントをする

配列(変数data)の中の要素を1つずつ取り出してcountに足しています。

出力される値は、1回目は2、2回目は5, 3回目は10…と配列の長さだけループが回ります。

var count = 0
let data = [2, 3, 5, 6]
for d in 0..<data{
	count += d
	print(count)
} 

countの値が1ずつインクリメントされてprintされていきます。

出力される値は1回目は1, 2回目は2, 3回目は3…と1ずつ増えた値が出力され10まで繰り返します。

var count = 0
let max = 10
for _ in 0..<max{
	count += 1
	print(count)
} 

Note

for文に限らずですがSwiftでは使っていない変数などを省略することが推奨されています。今回の例ではforの何番目の値かを必要としていないため_で省略しています。

2ずつ増えるループを回したい時

1ずつではなく2ずつ、3ずつ増やしてるーぷをまわしたいときもあります。そんな時はstrideという便利なものが用意されています。

このコードでは0から10まで2刻みでループが回るため5回for文の中が呼ばれます。

var count = 0

for _ in stride(from: 0, to: 10, by: 2){
    count += 1
    print(count)
}

配列の中身と要素番号を同時に使いたい時

配列でループを回す際に、配列の中身だけではなく何回目のループなのかを要素番号に使いたい時があります。

Swiftにはenumerated()というものが用意されています。これを使うことで配列の要素番号も取得してループを回すことができます。 

let arr = ["きうい","ばなな","りんご"]
for (n, i) in arr.enumerated() {
    print("\(n)番目\(i)")
}

前の記事

Switch

次の記事

TemplateMethod