흐름제어
switch 구문은 특정 값을 받아 미리 지정한 case 조건에 충족한 코드가 실행되는 형태이다. == 및 범위도 표현이 가능하다.
입력값과 데이터 타입이 같이야하며 비교될 값이 한정적인 열거 값이 아닌경우에는 default를 반드시 작성해야한다. 또, case를 연속 실행하기 위해선 fallthrough 키워드를 사용한다.
switch 입력 값{
case 비교 값1:
실행구문
case 비교 값2: // case 1...10:처럼 범위 사용 가능
실행구문
fallthrough //case를 마치지 않고 아래 case로 넘어감
case 비교 값 3, 비교 값 4, 비교 값 5:
실행구문
default: //한정된 값이 아니라면 default는 필수
실행구문
typealias NameAge = (name: String, age: Int)
let tupleValue: Nameage = ("Kim", 99) //tupleValue에 "Kim", 99 를 입력
switch tupleValue {
case ("Kim", 50):
print("맞췄습니다.")
case ("kim", let age):
print("이름만 맞았습니다. 나이는 \(age)입니다.) //let 값 바인딩
이름만 맞았습니다. 나이는 99입니다.
이해가 잘 되지 않았는데 let을 사용하여 값 바인딩을 하면 let age라는 내부에서 생성된 변수값을 사용할 수 있다.
바인딩은 프로그램의 각종 변수값들이 실제 값으로 묶는 것이다.
for-in 구문
반복적인 데이터나 시퀀스를 다룰때 사용한다.
var result: Int = 1
for _ in 1...3{
result *= 10
}
//1000
while 구문
while 키워드 옆에 조건을 달아주고 이 조건을 만족하는 동안 내부 코드를 반복하다가 만족하지 않는다면 반복문을 빠져나오게 된다.
var i = 1
while i < 8 {
if i == 4 {
break
}
print(i)
i += 1
}
3까지 출력 한후 반복문을 나온다.
repeat 부분의 코드를 실행한 후, while 옆에 조건을 달성하면 코드를 반복한다.