🔀 조건문
📖 조건문이란?
조건문은 상황에 따라 다른 코드를 실행합니다. "만약 ~라면"의 논리를 코드로 표현합니다.
💡 if 문
기본 사용법
fun main() {
val age = 20
if (age >= 18) {
println("성인입니다")
}
// 출력: 성 인입니다
}
if-else
fun main() {
val score = 75
if (score >= 80) {
println("합격입니다!")
} else {
println("불합격입니다.")
}
// 출력: 불합격입니다.
}
if-else if-else
fun main() {
val score = 85
if (score >= 90) {
println("A학점")
} else if (score >= 80) {
println("B학점")
} else if (score >= 70) {
println("C학점")
} else {
println("F학점")
}
// 출력: B학점
}
🎨 if는 표현식
Kotlin의 if는 값을 반환할 수 있습니다!
fun main() {
val age = 20
// if를 표현식으로 사용
val message = if (age >= 18) {
"성인입니다"
} else {
"미성년자입니다"
}
println(message) // 성인입니다
// 한 줄로도 가능
val status = if (age >= 18) "성인" else "미성년자"
println(status) // 성인
}
🌟 when 문
기본 사용법
fun main() {
val grade = 'B'
when (grade) {
'A' -> println("최고예요!")
'B' -> println("좋아요!")
'C' -> println("괜찮아요")
'D' -> println("노력하세요")
'F' -> println("재수강하세요")
else -> println("알 수 없는 학점")
}
// 출력: 좋아요!
}
when도 표현식
fun main() {
val grade = 'B'
val message = when (grade) {
'A' -> "최고예요!"
'B' -> "좋아요!"
'C' -> "괜찮아요"
else -> "노력하세요"
}
println(message) // 좋아요!
}
여러 값 매칭
fun main() {
val day = 6
val dayType = when (day) {
1, 2, 3, 4, 5 -> "평일"
6, 7 -> "주말"
else -> "잘못된 요일"
}
println(dayType) // 주말
}
범위로 매칭
fun main() {
val score = 85
val grade = when (score) {
in 90..100 -> "A"
in 80..89 -> "B"
in 70..79 -> "C"
in 60..69 -> "D"
else -> "F"
}
println("학점: $grade") // 학점: B
}
조건식으로 매칭
fun main() {
val temperature = 25
val weather = when {
temperature < 0 -> "매우 춥습니다"
temperature < 10 -> "춥습니다"
temperature < 20 -> "시원합니다"
temperature < 30 -> "따뜻합니다"
else -> "덥습니다"
}
println(weather) // 따뜻합니다
}
타입 체크
fun main() {
val value: Any = "Hello"
when (value) {
is String -> println("문자열: $value")
is Int -> println("정수: $value")
is Boolean -> println("불리언: $value")
else -> println("알 수 없는 타입")
}
// 출력: 문자열: Hello
}
🆚 if vs when
언제 뭘 쓸까?
// ✅ 2-3가지 분기 → if
fun main() {
val age = 20
if (age >= 18) {
println("성인")
} else {
println("미성년자")
}
}
// ✅ 여러 분기 → when
fun main() {
val grade = 'B'
when (grade) {
'A' -> println("최고")
'B' -> println("좋음")
'C' -> println("보통")
'D' -> println("나쁨")
'F' -> println("매우 나쁨")
}
}
🎯 실전 예제
BMI 판정
fun main() {
val height = 1.75 // 미터
val weight = 70.0 // kg
val bmi = weight / (height * height)
val result = when {
bmi < 18.5 -> "저체중"
bmi < 23.0 -> "정상"
bmi < 25.0 -> "과체중"
bmi < 30.0 -> "비만"
else -> "고도비만"
}
println("BMI: %.1f → $result".format(bmi))
}
계절 판별
fun main() {
val month = 7
val season = when (month) {
in 3..5 -> "봄"
in 6..8 -> "여름"
in 9..11 -> "가을"
12, 1, 2 -> "겨울"
else -> "잘못된 월"
}
println("${month}월은 ${season}입니다")
// 출력: 7월은 여름입니다
}
홀짝 게임
fun main() {
val number = (1..100).random()
val result = if (number % 2 == 0) {
"짝수"
} else {
"홀수"
}
println("랜덤 숫자: $number → $result")
}
로그인 검증
fun main() {
val username = "admin"
val password = "1234"
if (username == "admin" && password == "1234") {
println("로그인 성공!")
} else if (username != "admin") {
println("아이디를 확인하세요")
} else {
println("비밀번호를 확인하세요")
}
}