주어진 각도를 다음과 같은 기준으로 구분하여 특정 값을 반환하는 문제다.
예각: 0 < angle < 90 → 1 반환
직각: angle == 90 → 2 반환
둔각: 90 < angle < 180 → 3 반환
평각: angle == 180 → 4 반환
나는 문제를 보자마자 if-else
로 조건문을 작성했다.
func solution(_ angle: Int) -> Int {
if angle < 90 {
return 1
} else if angle == 90 {
return 2
} else if angle < 180 {
return 3
} else {
return 4
}
}
if-else는 조건을 순차적으로 검사하기 때문에 각 조건이 명확하게 분리된다. 다만, 조건이 많아질수록 코드가 길어져 가독성이 떨어질 수 있는 단점이 있다.
switch를 사용하면 코드가 더 깔끔해지고 가독성이 높아진다.
func solution(_ angle: Int) -> Int {
switch angle {
case 0..<90:
return 1
case 90:
return 2
case 91..<180:
return 3
case 180:
return 4
default:
return 0 // 예외 처리
}
}
if-else
와 switch
의 차이점 및 선택 기준특징 | if-else 사용 | switch 사용 |
---|---|---|
조건 검사 방식 | 조건을 순차적으로 검사 | 각 case 에 따라 분기 |
가독성 | 조건이 많아지면 코드가 길어질 수 있음 | 명확한 분기와 범위 조건으로 깔끔함 |
범위 조건 처리 | 복잡해질 수 있음 | case 0..<90 과 같은 범위 조건 사용 가능 |
사용 시기 | 조건이 간단하거나 순차적으로 검사할 때 적합 | 명확한 값 또는 범위에 따라 분기할 때 적합 |
코드의 가독성을 높이고, 유지보수를 쉽게 하기 위해 상황에 맞는 조건문을 선택하는 것이 중요하다는 점
주말도 달리시는,,, 햐