Kotlin의 조건문과 반복문
Kotlin은 다양한 조건문과 반복문을 제공하여 프로그래머가 효율적이고 읽기 쉬운 코드를 작성할 수 있게 합니다. 이 가이드에서는 Kotlin의 주요 제어 흐름 구조를 살펴보고, 각각의 사용법과 특징을 자세히 알아보겠습니다.
If 표현식 (If expression)
Kotlin에서 if
는 표현식입니다. 이는 값을 반환한다는 의미로, 다른 언어의 삼항 연산자(조건 ? 참 : 거짓)를 대체할 수 있습니다.
var max = a
if (a < b) max = b
// else와 함께 사용
if (a > b) {
max = a
} else {
max = b
}
// 표현식으로 사용
max = if (a > b) a else b
// else if도 표현식에서 사용 가능
val maxLimit = 1
val maxOrLimit = if (maxLimit > a) maxLimit else if (a > b) a else b
if
표현식의 각 분기는 블록이 될 수 있으며, 이 경우 블록의 마지막 표현식이 해당 분기의 값이 됩니다:
val max = if (a > b) {
println("a 선택")
a
} else {
println("b 선택")
b
}
주의할 점은 if
를 표현식으로 사용할 때 (예: 값을 반환하거나 변수에 할당할 때), else
분기가 필수라는 것입니다.
When 표현식 (When expression)
when
은 여러 분기를 가진 조건 표현식을 정의합니다. C 계열 언어의 switch
문과 유사하지만, 더 강력하고 유연합니다.
when (x) {
1 -> println("x == 1")
2 -> println("x == 2")
else -> {
println("x는 1도 2도 아님")
}
}
when
은 표현식이나 문장으로 사용될 수 있습니다. 표현식으로 사용될 때, 첫 번째로 매치되는 분기의 값이 전체 표현식의 값이 됩니다.
enum class Bit {
ZERO, ONE
}
val numericValue = when (getRandomBit()) {
Bit.ZERO -> 0
Bit.ONE -> 1
// 모든 경우가 처리되었으므로 'else'가 필요 없음
}
여러 case를 한 줄에 표현할 수도 있습니다:
when (x) {
0, 1 -> println("x == 0 또는 x == 1")
else -> println("그 외")
}
when
의 조건에는 상수뿐만 아니라 임의의 표현식을 사용할 수 있습니다:
when (x) {
s.toInt() -> println("s는 x를 인코딩함")
else -> println("s는 x를 인코딩하지 않음")
}
범위나 컬렉션에 대한 in
또는 !in
검사도 가능합니다:
when (x) {
in 1..10 -> println("x는 범위 내에 있음")
in validNumbers -> println("x는 유효함")
!in 10..20 -> println("x는 범위 밖에 있음")
else -> println("위의 경우가 모두 아님")
}
is
또는 !is
를 사용한 타입 검사도 가능합니다:
fun hasPrefix(x: Any) = when(x) {
is String -> x.startsWith("prefix")
else -> false
}
when
은 if-else if
체인을 대체할 수 있습니다:
when {
x.isOdd() -> println("x는 홀수")
y.isEven() -> println("y는 짝수")
else -> println("x+y는 홀수")
}
For 루프 (For loops)
Kotlin의 for
루프는 이터레이터를 제공하는 모든 것을 반복할 수 있습니다.
for (item in collection) println(item)
// 블록 사용
for (item: Int in ints) {
// ...
}
범위에 대한 반복도 가능합니다:
for (i in 1..3) {
println(i)
}
for (i in 6 downTo 0 step 2) {
println(i)
}
배열이나 리스트를 인덱스와 함께 반복하려면 다음과 같이 할 수 있습니다:
for (i in array.indices) {
println(array[i])
}
// 또는 withIndex() 함수 사용
for ((index, value) in array.withIndex()) {
println("$index 위치의 요소는 $value")
}
While 루프 (While loops)
Kotlin은 while
과 do-while
루프를 제공합니다.
while (x > 0) {
x--
}
do {
val y = retrieveData()
} while (y != null) // y는 여기서도 사용 가능!
while
은 조건을 먼저 검사하고 본문을 실행하지만, do-while
은 본문을 최소한 한 번 실행한 후 조건을 검사합니다.
루프에서의 Break와 Continue (Break and continue in loops)
Kotlin은 루프에서 전통적인 break
와 continue
연산자를 지원합니다. 이에 대한 자세한 내용은 "Returns and jumps" 섹션을 참조하세요.
Kotlin의 조건문과 반복문은 다른 언어와 유사하면서도 더 강력하고 유연한 기능을 제공합니다. 특히 when
표현식의 다양한 사용법과 for
루프의 간결함은 Kotlin 코드를 더 읽기 쉽고 유지보수하기 쉽게 만듭니다. 이러한 기능들을 잘 활용하면 더 효율적이고 표현력 있는 코드를 작성할 수 있습니다.
Kotlin, 조건문, 반복문, If표현식, When표현식, For루프, While루프, 제어흐름, KotlinProgramming, 코틀린문법, 프로그래밍팁, 코드최적화, 안드로이드개발, 백엔드개발, KotlinCoroutines
'개발&프로그래밍' 카테고리의 다른 글
[kotlin] Exceptions (0) | 2024.08.12 |
---|---|
[kotlin] Return 과 점프 표현식 (0) | 2024.08.12 |
[kotlin] 타입 체크와 캐스팅 (0) | 2024.08.11 |
[Kotlin] 숫자 타입과 연산 가이드 (4) | 2024.08.10 |
[kotlin] 코딩 컨벤션 - lambdas, Trailing commas (0) | 2024.08.10 |
댓글