トップページ » フロー制御
20 Jun 2014 00:55公開
※「フロー制御」はまだ工事中です。まず「Swiftの全貌を探る」シリーズの記事を参考してください。
Swiftのコントロールフローを紹介します。
コントロールフロー
条件文:if、switch
条件の場合、boolが必須です。Cの0での表現が利用できません。
ループ文:for-in、for、while、do-while
条件の括弧が必要ないが、ブロックの中括弧が必要です。
let individualScores = [75, 43, 103, 87, 12] var teamScore = 0 for score in individualScores { if score > 50 { teamScore += 3 } else { teamScore += 1 } } teamScore
変数定義の後ろに?を付かば、オプショナル(nil可能)を定義できます。
ifとletを一緒に使えば、値のないことをチェックできます。
var optionalString: String? = "Hello" optionalString == nil var optionalName: String? = "John Appleseed" var greeting = "Hello!" if let name = optionalName { greeting = "Hello, \(name)" }
switchは多様なタイプをサポートしています。
- Cのような整数と文字の制限がありません
- breakが必要ない
let vegetable = "red pepper" switch vegetable { case "celery": let vegetableComment = "Add some raisins and make ants on a log." case "cucumber", "watercress": let vegetableComment = "That would make a good tea sandwich." case let x where x.hasSuffix("pepper"): let vegetableComment = "Is it a spicy \(x)?" default: let vegetableComment = "Everything tastes good in soup." }
for-inは配列と連想配列のループ処理ができます。
let interestingNumbers = [ "Prime": [2, 3, 5, 7, 11, 13], "Fibonacci": [1, 1, 2, 3, 5, 8], "Square": [1, 4, 9, 16, 25], ] var largest = 0 for (kind, numbers) in interestingNumbers { for number in numbers { if number > largest { largest = number } } } largest
whileとdo-while
var n = 2 while n < 100 { n = n * 2 } n var m = 2 do { m = m * 2 } while m < 100 m
forロープ文は二つの書き方があります。
var firstForLoop = 0 for i in 0..3 { firstForLoop += i } firstForLoop var secondForLoop = 0 for var i = 0; i < 3; ++i { secondForLoop += 1 } secondForLoop
シリーズ
記事のリスト
- フロー制御
レーティング
コメント