Kotlin은 다양한 제어문을 제공하여 효율적인 프로그램 흐름을 작성할 수 있게 합니다. 이 포스팅에서는 제어문에 대해 알아보고, 조건문과 반복문을 활용하는 방법을 예제와 함께 설명하겠습니다.
1. 조건문 (if, when)
1.1 if 문
if
문은 조건을 확인하고 그에 따라 코드 블록을 실행하는 데 사용됩니다. Kotlin의 if
문은 자바와 유사하지만 표현식(expression)으로 사용할 수 있어 매우 유용합니다.
val a = 10
val b = 20
// if 문을 사용한 조건 확인
if (a > b) {
println("a는 b보다 큽니다.")
} else {
println("a는 b보다 작거나 같습니다.")
}
// if 문을 표현식으로 사용
val max = if (a > b) a else b
println("최댓값은 $max 입니다.")
위의 예제에서 if
문을 사용하여 두 값을 비교하고, if
문을 표현식으로 사용하여 최대값을 구하는 것을 볼 수 있습니다.
1.2 when 문
when
문은 여러 조건을 처리해야 할 때 유용합니다. 자바의 switch
문과 비슷하지만 더 강력한 기능을 제공합니다.
val day = 3
// when 문을 사용한 조건 확인
val dayName = when (day) {
1 -> "월요일"
2 -> "화요일"
3 -> "수요일"
4 -> "목요일"
5 -> "금요일"
6 -> "토요일"
7 -> "일요일"
else -> "잘못된 입력"
}
println("요일: $dayName")
when
문은 특정 값에 따라 분기처리할 때 유용하며, else
블록을 통해 모든 경우를 커버할 수 있습니다.
다른 예로, 특정 값의 범위를 체크하거나 객체 타입에 따라 동작을 다르게 할 수 있습니다.
val number = 15
// 값의 범위에 따른 when 문
val category = when (number) {
in 1..10 -> "1부터 10 사이의 숫자"
in 11..20 -> "11부터 20 사이의 숫자"
else -> "범위를 벗어난 숫자"
}
println(category)
2. 반복문 (for, while)
2.1 for 문
for
문은 컬렉션이나 범위를 순회할 때 사용됩니다. Kotlin의 for
문은 간결하면서도 강력한 반복문을 제공합니다.
// 1부터 5까지의 숫자를 출력하는 for 문
for (i in 1..5) {
println("i: $i")
}
// 배열 순회하기
val fruits = arrayOf("사과", "바나나", "체리")
for (fruit in fruits) {
println(fruit)
}
위의 예제에서는 1..5
범위를 사용하여 반복문을 실행하고, 배열을 순회하는 방법을 보여줍니다.
또한, 인덱스와 값을 동시에 사용할 수도 있습니다.
val colors = listOf("빨강", "초록", "파랑")
for ((index, color) in colors.withIndex()) {
println("$index: $color")
}
2.2 while 문
while
문은 조건이 참인 동안 반복을 수행합니다. do-while
문은 먼저 블록을 실행한 후 조건을 검사합니다.
var x = 5
// while 문을 사용한 반복
while (x > 0) {
println("x: $x")
x--
}
// do-while 문을 사용한 반복
var y = 3
do {
println("y: $y")
y--
} while (y > 0)
while
문은 조건을 먼저 평가하기 때문에 조건이 참이 아닐 경우 반복문이 실행되지 않을 수 있습니다. 반면, do-while
문은 최소 한 번은 실행됩니다.
3. 예제: 숫자 맞추기 게임
다음은 지금까지 배운 제어문을 활용하여 간단한 숫자 맞추기 게임을 구현한 예제입니다.
import kotlin.random.Random
fun main() {
val targetNumber = Random.nextInt(1, 101) // 1부터 100 사이의 난수 생성
var guess: Int
var attempts = 0
println("1부터 100 사이의 숫자를 맞춰보세요!")
do {
print("숫자를 입력하세요: ")
guess = readLine()?.toIntOrNull() ?: continue
attempts++
when {
guess < targetNumber -> println("더 큰 숫자입니다.")
guess > targetNumber -> println("더 작은 숫자입니다.")
else -> println("정답입니다! $attempts 번 만에 맞추셨습니다.")
}
} while (guess != targetNumber)
}
위 예제에서는 when
문과 do-while
문을 사용하여 숫자를 맞추는 간단한 게임을 만들었습니다. 사용자가 입력한 숫자가 정답보다 크거나 작은지 안내하며, 정답을 맞출 때까지 반복합니다.
4. 결론
Kotlin의 제어문인 if
, when
, for
, while
문은 다양한 상황에서 프로그램의 흐름을 제어하는 데 유용하게 사용됩니다. 특히 when
문은 자바의 switch
문보다 훨씬 강력하며, if
문을 표현식으로 사용할 수 있는 점은 Kotlin의 큰 장점 중 하나입니다.
이 포스팅에서는 제어문의 기본적인 사용법과 예제를 통해 제어문이 어떻게 활용되는지 살펴보았습니다.
'kotlin' 카테고리의 다른 글
Kotlin 배열(Array), 리스트(List), 맵(Map) (0) | 2024.12.16 |
---|---|
Kotlin 클래스와 객체지향 프로그래밍 (0) | 2024.12.15 |
Kotlin 문자열 처리 - 문자열 템플릿과 함수 활용하기 (0) | 2024.12.14 |
Kotlin 언어의 기본 문법과 특징 소개 (0) | 2024.12.12 |
Kotlin 소개 및 설치 (0) | 2024.12.09 |