본문 바로가기

Swift_Grammar

[Swift_Grammar] 흐름 제어 (1)

코드를 실행해야 하거나 실행하지 말아야 하는 상황,

혹은 특정 명령어를 반복해서 실행해야 할때 조건문과 반복문

즉 흐름 제어를 하게 된다.

 

조건문은 if문 과 switch문, guard문 이 있다.

 

if

먼저 if문은 if, else 등의 키워드로 사용할 수 있고

else if는 몇개를 사용해도 상관 없으며 else 블록은 생략해도 무방하다.

먼저 오는 조건중 어느 하나라도 충족이 되었다면 다음 조건들의 코드들은 무시한다.

또한 조건의 값은 Bool 타입이어야 한다.

let lhs = 5
let rhs = 6

if lhs < rhs {
	print("lhs의 값이 더 작다")
} else if lhs > rhs {
	print("lhs의 값이 더 크다")
}
let value = false

if value {
	print("value는 true 입니다.")
}

 

 

switch

swift에서 break 키워드 사용은 선택사항이다.

case를 연속 실행하려면 fallthrough 키워드를 사용한다.

case에 들어갈 비교 값은 입력 값과 데이터 타입이 같아야한다.

	let value = 2

	switch value {
	case 0:
    	    print("값은 0입니다.")
            break
	case 1:
   	    print("값은 1입니다.")
            break
    	case 2:
    	    print("값은 2입니다.")
            break
   	default:
	    print("값은 0, 1, 2 가 아닙니다.")
            break
	}

 

모든 case에 대한 처리를 해주었다면 default는 해주지 않아도 된다.

enum MyCase {
    case mon
    case tue
    case thr
}

let value = MyCase.mon

switch value {
    case .mon:
        print("mon")
        fallthrough
    case .tue:
        print("mon and tue")    
    case .thr:
        print("thr")    
}

 

 

guard

guard문이라고 해서 크게 다르지 않다.

다만 else 키워드 뒤에 { return }을 붙혀줘야만 한다.

let value = 5

guard value > 0 else { return }
print("value는 0보다 큽니다.")

 

혹시 명시된 조건에 해당하지 않을때

return과 함께 실행할께 있다면

let value = 5

guard value == 0 else { 
    print("value는 0이 아닙니다.")
    return
}

요런식으로 사용할 수도 있다.

'Swift_Grammar' 카테고리의 다른 글

[Swift_Grammar] Optional  (0) 2020.12.28
[Swift_Grammar] 함수  (0) 2020.12.27
[Swift_Grammar] 흐름 제어 (2)  (0) 2020.12.25
[Swift_Grammar] Data Type  (0) 2020.12.21
[Swift_Grammar] 변수와 상수  (0) 2020.12.19