Swift 조건문&반복문

야곰님의 강의 자료

조건문

if-else 구문

if-else 구문의 기본 형태
if만 단독으로 사용해도되고, else, else if 와 조합해서 사용 가능합니다.
if 뒤의 조건 값에는 Bool 타입의 값만 위치해야 합니다.
조건을 감싸는 소괄호는 선택사항입니다.
중괄호는 생략이 안됩니다.

let someInteger = 100

if someInteger < 100 {
    print("100 미만")
} else if someInteger > 100 {
    print("100 초과")
} else {
    print("100")
} // 100

// 스위프트의 조건에는 항상 Bool 타입이 들어와야 합니다.
// if someInteger { } 오류발생
// someInteger는 Bool 타입이 아닌 Int 타입이기 때문에
// 컴파일 오류가 발생합니다.

switch 구문

스위프트의 switch 구문은 다른 언어에 비해 굉장히 강력한 힘을 발휘합니다.

기본적으로 사용하던 정수타입의 값만 비교하는 것이 아니라 대부분의 스위프트 기본 타입을 지원하며, 다양한 패턴과 응용이 가능합니다.

각각의 case 내부에는 실행가능한 코드가 반드시 위치해야 합니다.
매우 한정적인 값(ex. enum의 case 등)이 비교값이 아닌 한 default 구문은 반드시 작성해야 합니다.
명시적 break를 하지 않아도 자동으로 case마다 break 됩니다.
fallthrough 키워드를 사용하여 break를 무시할 수 있습니다.
쉼표(,)를 사용하여 하나의 case에 여러 패턴을 명시할 수 있습니다.

// 범위 연산자를 활용하면 더욱 쉽고 유용합니다
switch someInteger {
case 0:
    print("zero")
case 1..<100:
    print("1~99")
case 100:
    print("100")
case 101...Int.max:
    print("over 100")
default:
    print("unknown")
} // 100

// 정수 외의 대부분의 기본 타입을 사용할 수 있습니다
switch "yagom" {
case "jake", "mina": // 여러 패턴을 명시할 수 있음
    print("jake")
    fallthrough // jake와 mina 다음 yagom 문까지 실행
case "yagom":
    print("yagom!!")
default:
    print("unknown")
} // yagom!!

반복문

for-in 구문

기존 언어의 for-each 구문과 유사합니다.
Dictionary의 경우 이터레이션 아이템으로 튜플이 들어옵니다. (하단 애플 문서의 튜플 부분 참조)
for-in 구문 기본 형태

var integers = [1, 2, 3]
let people = ["yagom": 10, "eric": 15, "mike": 12]

for integer in integers { 
    print(integer) // 1 2 3
}

// Dictionary의 item은 key와 value로 구성된 튜플 타입입니다
for (name, age) in people {
    print("\(name): \(age)") // 키 값
}

while 구문

while integers.count > 1 { // 조건문에는 Bool 값만 가능
    integers.removeLast()
}

repeat-while 구문

기존 언어의 do-while 구문과 형태/동작이 유사합니다.
repeat-while 구문의 기본 형태

repeat {
    integers.removeLast()
} while integers.count > 0

좋은 웹페이지 즐겨찾기