230809 개발일지

이애라·2023년 8월 9일
0

iOS 걸음마

목록 보기
9/22

switch문
패턴을 매칭시켜 실행할 코드를 결정.
케이스블록에는 반드시 한줄 이상의 코드 추가 필요
비교할 대상이 표현할 수 있는 모든 경우의 수를 스위치안에서 처리.
처리할 값을 케이스로 매칭시키고
나머지는 디폴트 케이스로 처리.
케이스블록이나 디폴드블록에서 아무 작업도 할 필요가 없다면 break쓰면 됨

switch valueExpression { //valusExpression = 비교할대상
case pattern: //pattern = 대상과 비교할 값
statements // 비교할대상과 비교할값이 같다면 여기있는게 실행됨
case parer, pattern: //패턴 2개이상 나열 가능
statements //1개 이상의 case와야함
default: //앞에서 매칭되지 않은 모든 경우의수를 디폴트로 처리
statements //마지막으로 default
}

ex)
let num = 1

switch num {
case 1:
print(“one”)
case 2, 3:
print(“two or three”)
default:
break
}

Interval Matching

let temperature = Int.random(in: -10 … 30)

switch temperature {
case …10:
print(“Cold”)
case 11…20:
print(“Cool”)
case 21…27:
print(“Warm”)
case 28…:
print(“Hot”)
default:
break //열거형을 제외하면 default가 꼭 필요함
}

Fall Through

ex1)
let num = 2
switch num {
case 1:
print(“one”)
case 2:
print(“two”) // 여기서 케이스블록 실행후 다음 케이스 확인하지 않고 끝남.(“Implicit fallthrough를 허용하지않는다”란 뜻)
fallthrough // 폴쓰로우를 넣으면 다음 블록들을 실행시킴. 패턴 무시하고 실행시키기때문에 버그 생길 확률 있음
case 3:
print(“three”)
default:
break
}

ex2)
let attempts = 10

switch attemps {
case …9:
print(“warning”)
case …10:
print(“locked”)
fall through
default:
print(“send warning email”)
}
//attempts 10일경우, locked 출력후 send warning email 출력하고
//attempts 11로 바꿀경우, send warning email만 출력함

!스위치문에서 브레이크의 역할을 알게됨. 폴쓰로우는 아직 어렵다

0개의 댓글