학습
Kotlin 제어문 (if, when)
Kotlin 제어문 (if, when) — 초급
제어문 (if, when)
1. 도입 (왜 배워야 하는가)
제어문은 프로그래밍에서 흐름을 제어하는 중요한 도구입니다. 조건에 따라 코드의 실행 경로를 변경할 수 있게 해주므로, 다양한 로직을 구현할 수 있습니다. 예를 들어, 사용자가 입력한 값에 따라 다른 동작을 수행해야 하는 상황에서 제어문이 필수적입니다.
제어문이 없으면 프로그램은 주어진 순서대로만 실행되며, 사용자의 입력이나 프로그램의 상태에 따라 유연하게 대응할 수 없습니다. 이는 실무에서 복잡한 애플리케이션을 개발할 때 큰 제약이 될 수 있습니다. 따라서 제어문을 잘 이해하고 활용하는 것은 프로그래머로서 필수적인 역량입니다.
2. 핵심 개념 설명
2.1 if 문
if 문은 특정 조건이 참인지 거짓인지에 따라 다른 행동을 취할 수 있게 해줍니다. 마치 교차로에서 신호등에 따라 차가 멈추거나 진행하는 것과 비슷합니다.
관련 용어 정리
| 용어 | 설명 |
|---|---|
| 조건식 | true 혹은 false로 평가되는 식 |
| 블록문 | 조건이 참일 때 실행되는 코드 |
| else 문 | 조건이 false일 때 실행되는 코드 |
2.2 when 문
when 문은 여러 조건을 비교할 수 있는 구조로, switch-case 문과 비슷합니다. 특정 상황에서 어떤 행동을 선택해야 할 때 유용합니다. 예를 들어, 메뉴에서 선택한 항목에 따라 다른 작업을 수행하는 경우입니다.
3. 기본 코드 예제
3.1 if 문 예제
fun main() {
val score = 85
if (score >= 90) {
println("A")
} else if (score >= 80) {
println("B")
} else {
println("C")
}
}
- 실행 결과: B
- 코드 설명:
- score라는 변수를 85로 초기화합니다.
- 첫 번째 조건 score >= 90이 false이므로 첫 번째 블록은 실행되지 않습니다.
- 두 번째 조건 score >= 80이 true이므로 "B"가 출력됩니다.
- 마지막 else 블록은 실행되지 않습니다.
3.2 when 문 예제
fun main() {
val fruit = "apple"
when (fruit) {
"banana" -> println("바나나입니다.")
"apple" -> println("사과입니다.")
"orange" -> println("오렌지입니다.")
else -> println("알 수 없는 과일입니다.")
}
}
- fruit 변수에 "apple"을 할당합니다.
- when 문 내에서 "apple"에 해당하는 경우가 발견되므로 "사과입니다."가 출력됩니다.
- 다른 블록은 실행되지 않습니다.
4. 실전 활용 예제
4.1 쇼핑몰 장바구니 구현
사용자가 장바구니에 담은 상품의 수에 따라 배송비를 결정하는 상황에서 if 문을 사용합니다.
fun calculateShippingCost(itemCount: Int): Int {
return if (itemCount > 5) {
0 // 무료 배송
} else {
5000 // 5,000원의 배송비
}
}
4.2 사용자 입력 처리
사용자가 선택한 메뉴에 따라 다른 기능을 실행하는 경우 when 문을 활용할 수 있습니다.
fun userChoice(choice: Int) {
when (choice) {
1 -> println("계좌 조회")
2 -> println("입금하기")
3 -> println("출금하기")
else -> println("잘못된 선택입니다.")
}
}
5. 흔한 실수와 주의사항
5.1 if 문에서 조건을 잘못 설정
if (score = 90) { // '='를 사용, 잘못된 대입 연산
println("A")
}
if (score 90) { // ''를 사용, 비교 연산
println("A")
}
5.2 when 문의 default 케이스를 놓치는 경우
when (fruit) {
"banana" -> println("바나나입니다.")
"apple" -> println("사과입니다.")
// 기본 케이스 없음
}
when (fruit) {
"banana" -> println("바나나입니다.")
"apple" -> println("사과입니다.")
else -> println("알 수 없는 과일입니다.") // 기본 케이스 추가
}
6. 정리
if 문은 조건에 따라 다른 코드를 실행하게 해줍니다.when 문은 여러 조건을 쉽게 비교할 수 있게 해줍니다.