티스토리 뷰

728x90

1. when 문

Java에서 switch ~ case문이 코틀린에선 when 문으로 대체되었다.

// 기본 형식 //
val num: Int = 1
when(num) {
    1 -> println("num는 1입니다.")
    2 -> println("num는 2입니다.")
    3 -> println("num는 3입니다.")
    else -> println("num는 1, 2, 3이 아닙니다.")
}
// 인자 없이 사용 //
when {
    num == 1 -> println("num는 1입니다.")
    num == 2 -> println("num는 2입니다.")
    num == 3 -> println("num는 3입니다.")
}
// 여러개의 값 비교 //
when(num) {
    1,2 -> println("num 1 or 2 입니다.")
    3,4,5 -> println("num 3,4,5 중 하나 입니다.")
    else -> println("num 1~5 외의 숫자입니다.")
}
// 조건 만족시 실행할 코드가 여러줄일 경우 { } 사용 //
when(num){
    1 -> {
        println("num는 1입니다.")
        println("수행할 코드가 여러줄입니다.");
    }
    2, 3 -> {
        println("num는 2이거나, 3입니다.")
        println("수행할 코드가 여러줄입니다.")
    }
    else -> println("num는 1,2,3이 아닙니다.")
}
// 조건 범위지정 //
when(num) {
    in 1..3 -> println("num는 1 ~ 3 사이의 숫자입니다.")
    in 4..6 -> println("num는 4 ~ 6 사이의 숫자입니다.")
    in 7..9 -> println("num는 7 ~ 9 사이의 숫자입니다.")
    else -> println("num는 1 ~ 9 사이의 숫자가 아닙니다.")
}
// 조건 범위지정 2 //
val numRange = (11..20)
when(num) {
    in 1..10 -> println("num는 1 ~ 10 사이의 숫자입니다.")
    in numRange -> println("num는 11 ~ 20 사이의 숫자입니다.")
    else -> println("num 1 ~ 20 사이의 숫자가 아닙니다.")
}
// !in 키워드 사용 //
// num이 1이면 첫번째 case만 실행됨. 중첩실행은 안됨.
when(num) {
    1 -> println("num는 1입니다.")
    1,2 -> println("num는 1 또는 2 입니다.")
    !in 11..20 -> println("num는 11 ~ 20 사이의 숫자가 아닙니다.")
}
// 변수에 값 할당 when 문 //
val str: String? = when(num) {
    1 -> "일"
    2 -> "이"
    3 -> "삼"
    else -> null
}
// is 연산자를 사용한 자료형 확인 //
val x: Any = "str"
when(x) {
    is Int -> println(x + 1)
    is String -> println(x.length + 1)
    is IntArray -> println(x.sum())
}
728x90

2. while 문

조건식이 true 인경우 반복문을 실행함.

val x: Int = 1
while (x <= 10) {
    println("출력 : ${x++}")
}

// 무한반복 while문 //
var x: Int = 1
while (true) {
    println("출력 : ${x++}")
    if (x == 10) {
        // x가 10이면 반복문을 빠져나감 //
        break
    }
}

3. do ~ while 문

do ~ while문은 while문가 달리 최초 한 번은 실행 후 조건식이 true 인경우 반복문을 실행함.

var x: Int = 1
do {
    println("출력 : ${x++}")
} while (x <= 10)

 

728x90
250x250
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Total
Today
Yesterday