조건문 IF
True / False라는 특정 조건에서 코드를 실행하게 하는 문장
조건문은 참 또는 거짓이 나와야한다
- 예시 1
var n = 10
if n > 5 {
print(" \(n)은 5보다 크다") **이것만 출력**
} else if n == 10 {
print(" \(n)은 10과 같다")
} else { print("기타")}
- 예시 2
var n = 10
if n > 5 {
print(" \(n)은 5보다 크다") **이거와**
if n == 10 {
print(" \(n)은 10과 같다") **이거 둘다 출력**
}
} else { print("기타")}
조건문(Switch)- 표현식/변수를 분기처리할때에 사용, if의 쓰임보다 한정적인 상황에서 사용.
var n = 111
switch n {
case 0...99:
print("\(n)은 100 이내의 숫자")
case 100...999:
//여기에 fallthrough 쓰면 고려없이 다음 블럭인 default "다시설정" 을 출력
print("\(n)은 100 이상")
//여기에 fallthrough 쓰면 print("\(n)은 100 이상") 와 default "다시설정" 을 출력
default:
print("다시설정")
}
fallthrough: 매칭된 값에 대한 고려없이 무조건 다음블럭을 실행
Switch Value Binding: 주로 where 과 같이 사용되며, 바인딩된 상수는 case 내부에서만 사용이 가능하다
switch n {
case let x where x % 2 == 0:
print("\(n)은 짝수")
case let x where x % 2 != 0:
print("\(n)은 홀수")
default:
print("다시설정")
}
튜플(Tuples): 2개이상의 연관된 데이터(값)를 저장하는 Compound 타입
var kai1: (Int, Int) = (5, 6)
튜플의 분해: 즉 모아놓았던 데이터를 분해해서 사용 가능하다
var (aa, bb) = kai1
aa는 곧 5
bb는 곧 6
Tuples 과 Switch 활용
var kai1 = (5, 6)
switch kai1 {
case let (x, y) where (x,y) > (3,3):
print(" \(x), \(y)이 나온다")
default: break
}
if 처럼 하나하나 조건을 비교하는게 아니라 아니라 switch를 활용해서 한번에 간단하게 가능하다.