[Swift 정면돌파] 03. 제어구문

H43RO·2021년 7월 30일
1

Swift 정면돌파

목록 보기
3/19
post-thumbnail

본 시리즈는 아래 강의자료를 기반으로 작성되었습니다.
https://www.boostcourse.org/mo122/joinLectures/38564

오늘은 조건문, 반복문에 대하여 학습했다. 이러한 제어구문 같은 경우 다른 언어들과 크게 다른 부분이 없는 것 같다. (굳이 따지자면 파이썬 처럼 표현식에 괄호가 빠진 것이 특징이다)

하지만 switch 구문의 경우에는 다른 언어들과 다르게 훨씬 다양한 패턴 응용이 가능하여 훨씬 유용하게 쓰일 것 같다.

조건문

if-else 구문

→ 다른 언어들과 다를 건 없지만, 파이썬 처럼 조건 표현식에 괄호가 필요 없다.

let someInteger = 100

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

* 조건 표현식에는 항상 Bool 타입이 들어와야 함

switch 구문

→ 타 언어에서 기본적으로 사용하던 정수 타입 값 비교 뿐만 아니라 대부분의 스위프트 기본 타입을 지원하고, 다양한 패턴과도 응용이 가능하다.

// 범위 연산자 쌉가능
switch someVar {
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

// 대부분 기본 타입 (e.g. String) 을 사용할 수 있음
switch "haero" {
case "jake":
    print("jake")
case "mina":
    print("mina")
case "haero":
    print("H43RO")
default:
    print("unknown")
} // H43RO

반복문

for-in 구문

→ 자바 및 코틀린의 for-each 구문와 유사하다. 특징으로는 Dictionary 타입을
넣으면 이터레이션 아이템으로 Key-Value 튜플이 들어온다.

var integers = [1, 2, 3]
let people = ["H43RO": 10, "LULU": 15, "LALA": 12]

for integer in integers {
    print(integer)
}

// 1
// 2
// 3

// Dictionary 이터레이션 아이템은 key-value 로 구성된 튜플
for (name, age) in people {
    print("\(name): \(age)")
}

// H43RO: 10
// LULU: 15
// LALA: 12

while 구문

→ 다른 언어들과 다를 바 없다.

while integers.count > 1 {
	integers.removeLast()
}

repeat-while 구문

→ 다른 언어들의 do-while 구문과 유사하다.

repeat {
    integers.removeLast()
} while integers.count > 0
profile
어려울수록 기본에 미치고 열광하라

0개의 댓글