조건식의 결과(true, false)에 따라 실행할 코드를 결정해주는 역할을 하는 키워드를 조건문이라고 부릅니다.
대중적인 프로그래밍 언어(C, C++, java 등)에서는 조건식이 참(true)일 때 실행하는 if문 과 switch문을 일반적으로 사용합니다.
하지만 Swift에서는 특정 조건식이 거짓(false)일 때 실행하는 조건문인 guard문이 존재하며, 자주 사용됩니다.
다른 조건문을 놔두고 guard문을 왜?/어떻게?/언제? 사용할까??🤔
guard문은 단독으로 사용하는 경우가 거의 없으며, 주로 함수 안에서 사용됩니다. 때문에 함수 코드 블록을 빠져나갈 수 있게 해주는 키워드(break, return, continue 등)를 같이 사용해야 합니다.
(함수뿐만 아니라 조건문, 반복문 등에서도 사용할 수 있습니다.)
guard문을 사용하는 이유는 특정 조건식이 맞지 않을 경우 현재의 함수나 반복문에서 빠르게 빠져나올 수 있는 조기 출구(early exit) 전략을 사용하기 위해 사용됩니다. 이러한 조기 출구 전력이 코드의 가독성을 높여주기 때문에 코드의 성능을 높이는 효과를 가지고 있습니다.
✅ guard문의 기본 구조
guard <조건식> else{ //조건식이 거짓일 경우에 실행되는 코드 코드 블록을 빠져나갈 수 있게 해주는 구문(break, return, continue 등) } //표현식이 참일 경우에 실행되는 코드
✅ 함수 안에서 guard문 사용
func bmi(w: Double, h: Double) -> String{ guard w < 200.0 else{ print("에러 발생(무게 초과).") //생략 가능 return "200Kg을 초과하면 계산할 수 없습니다." // 함수 종료 코드 } let bmi = w + (h * h) return String(bmi) } print(bmi(w: 201, h: 1.8)) /*출력 결과 에러 발생(무게 초과). 200Kg을 초과하면 계산할 수 없습니다. */