Swift言語:制御構文(繰り返し)

制御構文(繰り返し)です。

  • for-in
  • for
  • while
  • repeat-while

注) Swiftのバージョンは、2.0です。

for-in

制御構文(繰り返し)は、forを使って以下のように記述します。

for 変数名 in 開始値...終了値 {
	処理
}

例)
for i in 1...5 {
    print(i)
}
// 出力
1
2
3
4
5

値を含まない場合には最後の.を<に置き換える。

let base = 3
var answer = 1
for i in 1..<5 {
    answer *= base
}
// 出力
1
2
3
4

loop変数が不要な場合には_を使う。

let base = 3
var answer = 1
for _ in 1...5 {
    answer *= base
}

範囲の記述

始値<=終了値でないとコンパイルエラーになります。

計算結果可視化

playgroundを使うと計算結果を可視化することができます。

print文は、Consoleに値を出力します。また、右側のコードの評価結果を表示するViewには、繰り返し回数(10 times)が表示されます。Quicklook(右側Viewの目アイコン)をクリックすると値が表示されます。最後の値(Latest Value)あるいはすべて(History)が表示されます。デフォルトは最新の値です。

f:id:unokun3:20151109052935p:plain

すべて(History)を選択した場合の表示です。

f:id:unokun3:20151109052951p:plain

print文でなく、変数に値を代入した場合には、グラフ表示されます。

f:id:unokun3:20151109053001p:plain

その他

inには静的な数値だけでなく、コレクション(配列、辞書)も使えます。

// 配列
var week = ["日", "月", "火", "水", "木", "金", "土"]
for day in week {
    print(day)
}
// 辞書
var sum = 0
var expense = ["交通費": 15000, "宿泊費": 10000, "日当": 2000]
for (key, value) in expense {
    sum += value;
}
print("出張費: \(sum)円")

//文字列から文字を取り出す
for char in "abcde".characters {
    print(char)
}

出力
a
b
c
d
e

// 日本語も大丈夫
for char in "こんにちは".characters {
    print(char)
}

出力
こ
ん
に
ち
は

for

for 初期化; 条件; 増加 {
    処理
}

for var index = 0; index < 3; ++index {
    print("index is \(index)")
}

while

条件が真の場合、処理を実行します。

while 条件 {
    処理
}

var index = 0;
while index < 10 {
	処理
	++index;
}

repeat-while

whileと同じですが、初回は必ず実行されるのが違います。

repeat {
    処理
} while 条件

関連情報