Kotlin 문법 정리 - 조건문, 반복문

김원기·2026년 4월 24일

Kotlin TIL

목록 보기
2/6

참고한 자료

https://www.youtube.com/watch?v=OtHkb6wAI5U


조건문

자바에서는 if-else 또는 switch-case 문으로 조건문을 작성할 수 있다.

Kotlin에서 if 문은 when으로 치환할 수 있다.
when은 Java의 switch와 비슷하지만 조금 더 강력한 조건들을 지정할 수 있다. (범위 지정, 값 비교, 식 사용 등)

조건문이 식으로 성립된다.

또한 중요한 점은 Kotlin에서의 조건문(when, if)은 식(Expression)으로 치환될 수 있다는 점이다. 즉, 조건문의 결과값을 변수에 바로 대입할 수 있다.

fun main() {
    var i = 5
    
    var result = if (i > 10) { // 조건문 통과 후 바로 result로 대입
        "10 보다 크다"
    } else if (i > 5) {
        "5보다 크다"
    } else {
        "5다."
    }
    print(result) // "5다." 가 출력된다.
}

// when으로 바꾼다면 다음과 같은 식이 된다.
fun main() {
    var i = 5
    
    var result = when { // 조건문 통과 후 바로 result로 대입
        i > 10 -> {
            "10 보다 크다"
        }
        i > 5 -> {
            "5보다 크다"
        }
        else -> {
            "5다."
        }
    }
    print(result) // "5다." 가 출력된다.
}

삼항 연산자

자바에서는 보통 다음과 같이 사용된다.

boolean result = i > 10 ? true : false; 

Kotlin에는 별도의 삼항 연산자가 없다.
대신 if를 식 그대로 적어주면 삼항 연산과 동일한 결과를 확인할 수 있다.

var result = if (i > 10) true else false

반복문

반복문은 보통 리스트(List) 같은 자료형을 순회할 때 자주 사용된다.

Kotlin은 for in 형태를 사용하며, Java의 향상된 for문이나 Python과 유사한 형태라 직관적이다.

다양한 for in 사용법

fun main() {
    val numbers = listOf(1, 2, 3, 4, 5) 
    
    // 1. 리스트 전체 순환
    for (item in numbers) {
        print(item)
    }
    
    // 2. 특정 범위 지정 (.. 사용 시 마지막 숫자 포함: 0123)
    for (i in 0..3) {
        print(i) 
    }
    
    // 3. 리스트 크기만큼 반복 (until 사용 시 마지막 미포함: 01234)
    // 0..numbers.size-1 와 동일하게 작동한다.
    for (i in 0 until numbers.size) {
        print(i)
    }
    
    // 4. 건너뛰며 반복 (step 사용)
    for (i in 0..10 step 2) {
        print(i) // 0, 2, 4, 6, 8, 10 출력
    }
}

forEach

함수형 스타일의 forEach 역시 가능하다.

fun main() {
    val numbers = listOf(1, 2, 3, 4, 5)
    
    // 일반적인 형태
    numbers.forEach { item ->
        print(item)
    }
    
    // 더 간결하게 it 키워드 사용 (파라미터가 하나일 때 생략 가능)
    numbers.forEach { print(it) }
}

while문

Java와 완벽하게 동일한 형태로 사용 가능하다.
break, continue 둘 다 가능하므로 기존에 알고 있는 형태로 사용하자.

profile
혼자 공부하는 블로그라 부족함이 많아요 https://www.notion.so/18067a27ac7e4f4790dde645fb3bf3d3?pvs=4

0개의 댓글