조건문과 if문
조건에 따라 코드의 실행 여부를 판단하는 문장을 조건문이라 합니다.
다양한 조건문 중 if문은 조건의 참과 거짓을 판단하고 실행 여부를 결정하는데, if블록에서 구현한 코드는 condition이 true인 경우에만 실행됩니다.
if condition {
statements
}
if조건문은 if키워드로 시작하고, condition부분엔 Boolean표현식(true 또는 false의 값을 도출하는 표현식)이 와야합니다.
condition이 true로 평가된다면, if블록의 코드가 실행됩니다.
false로 평가된 경우 실행되는 코드를 추가하고 싶다면, if블록 다음 else키워드를 사용해 코드블록을 구현하면 됩니다.
else블록은 조건문에서 한 번만 작성할 수 있습니다.
let myAgeIs: Int = 29
if myAgeIs > 30 {
print("당신은 30대입니다.")
} else {
print("당신은 20대입니다.")
}
// Prints: 당신은 20대입니다.
삼항연산자
바로 위에 코드처럼 경우의 수가 2가지인 경우엔 삼항 연산자를 사용해, if, else로 나뉘는 부분을 한 줄로 간단하게 줄일 수 있습니다.
condition ? expr1 : expr2
평가하고 싶은 condition 뒤에 ?를 사용하고 표현식1 : 표현식2 순서대로 작성합니다.
: 을 기준으로 condition이 true로 평가된다면 왼쪽 표현식을 리턴하고, false로 평가된다면 오른쪽 표현식을 리턴합니다.
let myAgeIs: Int = 29
myAgeIs > 30 ? print("당신은 30대입니다.") : print("당신은 20대입니다.")
// Prints: 당신은 20대입니다.
if문에서 조건을 더 추가하고 싶다면?
if블록과 else블록 사이에 else if키워드를 사용해 조건을 추가할 수 있습니다.
순서는 꼭 if블록과 else블록 사이에 위치해야 합니다.
var weather = "☔️"
if weather == "☀️" {
print("오늘날씨, 맑음!")
} else if weather == "☔️" {
print("아맞다, 우산!")
} else if weather == "🌫" {
print("미세먼지 조심!")
} else {
print("날씨 예측 불가능!")
}
// Prints: 아맞다, 우산!
if블록의 condition이 false로 평가될 경우 이어지는 다음 else if블록의 condition을 평가하고, true로 평가될 경우 해당 블록이 실행됩니다.
else if블록이 false로 평가되는 경우 코드는 실행되지 않고, 다시 이어지는 다음 블록을 평가합니다.
else if블록은 원하는 만큼 언제든지 추가할 수 있습니다.
if문을 사용할 때 주의할 점!
위에서부터 차례대로 condition을 평가하기 때문에, 원하는 결과를 얻기 위해선 가장 까다로운 조건을 먼저 처리해야 합니다.
그리고 if블록 안에 또 다른 if블록을 넣어 조건을 추가해가며 원하는 값을 얻을 수 있지만, 코드가 계속 안쪽으로 파고드는 것 같은 형태의 '피라미드 오브 둠'을 조심해야 합니다. 이럴 땐 문제해결을 위해 다른 적절한 조건문(guard문, switch문 등)이 있는지 확인해야 합니다.