Sanghyuk's Dev


Control Transfer Statement 란 특정코드에서 다른 코드로 제어를 이전하여 코드 실행 순서를 변경하는 것을 말한다.

Swift 에는 5가지 키워드를 사용한다.

continue, return, break, fallthrough, throw


- continue

for num in 0...8 {
    if num % 2 == 0 {
      continue
    }
    print(num)
}


- return

return 아래 return 이 있으면 앞에있는 것이 먼저 실행되어 아래것은 실행되지 않는다.

func isEven(num: Int) -> Bool {
    if num % 2 == 0 {
      return true
    }
    return false
}

isEven(num: 1) // false
isEven(num: 2) // true

func returnFunction() -> Int {
    var sum = 0
  
    for _ in 1...100 {
      sum += 20
      return sum
      return 5 // Code after 'return' will never be executed
    }
    return 7
}

print(returnFunction())


- break

for num in 0...8 {
    // num = 0
    if num % 2 == 0 {
      break
    }
    print(num)
}


- fallthrough

for i in 0...3 {
    for j in 0...3 {
      if i > 1 {
        break
      }
      print("  inner \(j)")
    }
    print("outer \(i)")
}


이것을 응용한 방법도 있다.

- Labeled Statement

OUTER: for i in 0 ... 3 {
    INNER: for j in 0...3 {
      if i > 1 {
        continue INNER
        // break OUTER
      }
      print("  inner \(j)")
    }
    print("outer \(i)")
}


'iOS > Swift' 카테고리의 다른 글

[Swift] Dictionary  (0) 2018.05.23
[Swift] Array  (0) 2018.05.23
[Swift] Tuples  (0) 2018.05.23
[Swift] Loops  (0) 2018.05.23
[Swift] Conditional Statements  (0) 2018.05.23