LoginSignup
0
0

More than 5 years have passed since last update.

Start Developing iOS Apps. Swift Control Flow

Last updated at Posted at 2015-10-27

Control Flow

Control Frow Statement => 制御フロー文

Conditional Statement => 条件文

Loop Statement => 繰り返し文

If Statement => if文

Relational Operator => 関係演算子

Logical Operator => 論理演算子

If-else Statement => if-else文

Swiftには、二つのタイプの制御フロー文があります。
それは、条件文と繰り返し文です。

条件文は、「if」「switch」のような条件文で制御構造がtrueかもしくはfalseかを判定します。
繰り返し文は、Loops、つまり繰り返し文で、例えばfor-inやwhileのように複数回同じコードを実行処理します。

今回のif文では、定数numberの値 = 23とif文の条件と合致した値を出力します。

値は「23」なので、"The number is between 10 and 100"と出力されます。


let number = 23

if number < 10 {
    print("The number is small")
} else if number > 100 {
    print("The number is pretty big")
} else {
    pirnt("The number is between 10 and 100")
}

これらの文は「nested」つまり、入れ子構造にする事でより下記のコードのような高度な表現を可能にします。

for in文に関して(回数の決まった繰り返し)

for 要素を格納する定数 in 複数の要素を保持する変数or定数 {
     文
}

下記のコードでは、individualScoresに格納されている値をfor in文の定数scoreに代入します。
定数scoreに存在する全ての値をif文内部の条件で処理し終えるまで繰り返す処理します。

今回の値は「11」ですね

let individualScores = [75, 43, 103, 87, 12]

var teamScore = 0

for score in individualScores {
    if score > 50{
        teamScore += 3
    } else {
        tesmScore += 1
    }
}

print(teamScore)

optional bindingに関して

Optional bindingをif文で扱うとある値がoptionalを含めているかを確認できます。

optional binding

if文やwhile文の条件で宣言され、optional型の変数を代入された変数は「非Optional型」になる
var optionalName: String? = "John Appleseed"

var greeting = "Hello"

if let name = optionalName {
    greeting = "Hello, \(name)"
}

Switch文はSwiftをとても強力します。なぜなら、この文は多くのデータを多種多様な比較に扱うための機能をサポートします。

簡単switch

switch 式 {
case 値1:
    //処理
case 値2:
    //処理
case 値3:
    //処理
default:
//処理
}
================

var color = "red"

switch color {
  case "red":
    println("とまれー!")

  case "yellow":
    println("注意!")

  case "blue":
    println("進めー")

default:
  println("故障中")
}  


// とまれー!
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."
}

##swift rangeに関して(範囲を表すオブジェクト)


//0->4の値をloopさせたいときの書き方

var firstForLoop = 0

for i in 0..<4 {
    firstForLoop += 1
}

print(firstForLoop)

//0->3の値をloopさせたいときの書き方

var secondForLoop = 0
for _ in 0...4 {
    secondForLoop += 1
}

print(secondForLoop)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0