Backend
home

6. 반복문

생성일
2025/01/31 05:24
태그
Kotlin

while 루프

while (조건) { /*...*/ } do { /*...*/ } while (조건)
Kotlin
복사

for 루프

fun evenOrOdd(n: Int) = when { n % 2 == 0 -> "even" else -> "odd" } fun main() { // 1 ~ 100까지(100 포함) for (i in 1..100) println(evenOrOdd(i)) // 100 ~ 1까지 (3 간격으로, 100,97~1) for (i in 100 downTo 1 step 3) println(evenOrOdd(i)) }
Kotlin
복사
기본적으로 i in 1..100 은 양쪽 끝 부분을 포함, 마지막을 미포함 하려면 until 키워드 사용

map과 iteration

val binaryReps = TreeMap<Char, String>() for (c in 'A'..'Z') { val binary = Integer.toBinaryString(c.code) binaryReps[c] = binary } for ((key, value) in binaryReps) { println("문자:$key, 아스키코드:$value") }
Kotlin
복사
c in ‘A’..’Z’ : c는 ‘A’ 문자에서 ‘Z’문자까지 반복
(key, value) in binaryReps
binaryReps라는 map 구조체에 담긴 값을 for-each 스타일로 하나씩 iteration
map 구조체(key-value) 값을 좌측의 (key, value)로 구조분해(destructuring declaration)해서 바로 변수에 담음
in으로 범위 검사
fun isLetter(c: Char) = c in 'a'..'z' || c in 'A'..'Z' fun isNotDigit(c: Char) = c !in '0'..'9' fun recognize(c: Char) = when(c) { in '0'..'9' -> "숫자" in 'a'..'z', in 'A'..'Z' -> "알파벳" else -> "숫자도 알파벳도 아님" }
Kotlin
복사
a in s..t : 내부적으로 s ≤ a && a ≤ t 로 변환됨(양쪽 포함)