
⎮ 조건문
1. 조건문 비교하기
| 구 분 | 특 징 | 코 드 |
| if - else문 | 조건이 하나이고, 그 조건이 참인지 거짓인지에 따라 두 가지 경우로 나뉘는 상황에 사용 |
let temperature = 30 if temperature > 25 { print("더운 날씨입니다.") } else { print("시원한 날씨입니다.") |
| else - if문 | 여러 개의 조건을 우선순위에 따라 순차적으로 검사할 때 사용 (추가적인 조건을 확인할 때) |
let score = 85 if score >= 90 { print("A 등급입니다!") } else if score >= 80 { print("B 등급입니다!") } else { print("더 노력하세요!") } |
| switch문 | 여러 개의 고정된 값을 검사할 때 사용 (범위 값을 지원하기 때문에 유용함) |
let day = "화요일" switch day { case "월요일": print("한 주의 시작입니다!") case "금요일": print("주말이 다가오고 있어요!") case "토요일", "일요일": print("주말입니다! 푹 쉬세요!") default: print("일상적인 하루입니다.") } |
⎮ 조건문 사용 예시
1. if-else문
/*
나이가 19세 이상이면 "청소년 관람 불가 영화를 볼 수 있습니다." 출력
나이가 13세 이상이면 "일반 영화는 볼 수 있지만 청소년 관람 불가 영화는 볼 수 없습니다." 출력
그 외에는 "보호자 동반이 필요합니다." 출력
*/
let old = 20
print("나이 : \(old)")
if old >= 19 {
print("청소년 관람 불가 영화를 볼 수 없습니다.")
} else if old >= 13 {
print("일반 영화는 볼 수 있지만, 청소년 관람 불가 영화는 볼 수 없습니다.")
} else {
print("보호자 동반이 필요합니다.")
}
2. else - if문
/*
90점 이상 → "A 학점"
80점 이상 → "B 학점"
70점 이상 → "C 학점"
60점 이상 → "D 학점"
60점 미만 → "F 학점"
*/
let score = 85
print("점수: \(score)")
let score = 85
if score >= 90 {
print("A 학점")
} else if score >= 80 {
print("B 학점")
} else if score >= 70 {
print("C 학점")
} else if score >= 60 {
print("D 학점")
} else {
print("F 학점")
}
3. switch문
/*
90점 이상 → "A 학점"
80점 이상 → "B 학점"
70점 이상 → "C 학점"
60점 이상 → "D 학점"
60점 미만 → "F 학점"
*/
let score = 85
print("점수: \(score)")
switch score {
case >= 90:
print("A 학점")
case >= 80:
print("B 학점")
case >= 70:
print("C 학점")
case >= 60:
print("D 학점")
default:
print("F 학점)
}
// 오류 발생
//switch문에서는 >=과 같은 조건 연산자를 사용하지 않음.
⎮ 오류해결 : Switch문에서는 범위 연산자를 쓸 수 없다.
switch문으로 코드 작성을 했는데, 컴파일 오류가 났다.
'>=' is not a prefix unary operator (접두에 붙일 수 있는 단항 연산자가 아님)
/*
90점 이상 → "A 학점"
80점 이상 → "B 학점"
70점 이상 → "C 학점"
60점 이상 → "D 학점"
60점 미만 → "F 학점"
*/
let score = 85
print("점수: \(score)")
switch score {
case >= 90:
print("A 학점")
case >= 80:
print("B 학점")
case >= 70:
print("C 학점")
case >= 60:
print("D 학점")
default:
print("F 학점)
}
//switch문에서는 >=과 같은 조건 연산자를 사용하지 않음.
생각해보니 switch문에서는 조건을 비교할 때 범위연산자(...)를 사용했다.
범위연산자(...)를 사용해 코드를 수정한다면, 아래와 같다.
let score = 85
print("점수: \(score)")
switch score {
case 90...:
print("A 학점")
case 80 ..< 90:
print("B 학점")
case 70 ..< 80:
print("C 학점")
case 60 ..< 70:
print("D 학점")
default:
print("F 학점")
}
+ 아래처럼 쓰는 것은 어떤 문제가 있을까?
switch score {
case 90...:
print("A 학점")
case 80 ... 90:
print("B 학점")
case 70 ... 80:
print("C 학점")
case 60 ... 70:
print("D 학점")
default:
print("F 학점")
}
먼저 90...은 90 이상의 모든 숫자를 말하기 때문에 score의 범위보다 지나치게 크다.
따라서 굳이 수정하자면 90 ... 100 으로 범위를 지정해주는 것이 좋다.
또한 80 ... 90으로 작성하면 80~90의 숫자를 의미하는데,
여기서 숫자 90이 중복되게 된다. 이렇게 되면 불필요한 숫자를 2번 확인하는 것이므로
80 ..< 90 : 으로 범위를 명확히 지정해주는 것이 좋다.
아래와 같이 코드를 작성하면 가독성을 더 높일 수 있다.
let score = 85
print("점수: \(score)")
switch score {
case 90 ... 100:
print("A 학점")
case 80 ..< 90:
print("B 학점")
case 70 ..< 80:
print("C 학점")
case 60 ..< 70:
print("D 학점")
default:
print("F 학점")
}
'스파르타코딩 클럽 > 사전 캠프' 카테고리의 다른 글
| 8. 스파르타 코딩클럽 [사전캠프 - 함수의 선언과 사용 방법 이해하기] (0) | 2025.02.06 |
|---|---|
| 7. 스파르타 코딩클럽 [사전캠프 - 반복문 이해하기] (1) | 2025.02.05 |
| 5. 스파르타 코딩클럽 [사전캠프 - 연산자의 이해] (0) | 2025.02.04 |
| 4. 스파르타 코딩클럽 [사전캠프 - 기본 데이터 타입의 이해] (1) | 2025.02.04 |
| 3. 스파르타 코딩클럽 [사전캠프 - Swift배우기: 첫 번째 프로젝트] (1) | 2025.02.04 |