heylo 2025. 1. 24. 17:37

 

1) 자바와 코틀린 조건문의 차이점

statement 와 expression

// 자바에서는 statement (구문) 였던 조건문이
// 코틀린에서는 expression (식) 이다.

// statement 는 코드조각을 실행하는 구문
// expression 은 변수에 할당될 수 있는 값이 될 수 있다.
fun main() {
    max1(10, 4)
}

// 큰 수 출력 함수
fun max1(a : Int, b : Int) {
    val result = if (a > b) {
        println(a)
    } else {
        println(b)
    }
    println(result) // kotlin.Unit
}

조건문 전체를 val result 에 할당함

 

2) expression

fun main() {
    max2(10, 4)
}

fun max2(a : Int, b : Int) {
    val result = if( a > b){
        a
    } else {
        b
    }
    println(result)
}

값을 바로 result 에 할당 가능

 

3) 삼항 연산자는 없지만

fun main() {
    max3(10, 4)
}

// 코틀린에서는 3항 연산자가 없다
// 그대신 이렇게.
fun max3(a : Int, b : Int) {
    val result = if (a > b) a else b
    print(result)
}

 

4) switch 와 when

자바에서는 switch, 코틀린에서는 when

fun main() {
    isHoliday("금")
}

// 월, 화, 수, 목, 금, 토, 일
fun isHoliday(dayOfWeek : String) {

    val result = when (dayOfWeek) {
        "토",
        "일" -> true
        else -> false

    }
    println(result)
}

// expression 으로 사용할 때는 , 반드시 else 가 있어야하지만
// 그렇지 않을 경우, 선택사항임

 

5) when 과 조건문

// 월, 화, 수, 목, 금, 토, 일
fun isHoliday(dayOfWeek : String) {

    // 실무에서는 when 내부의 값을 받아서 다시 처리하기도 함
    val result = when (val day = dayOfWeek) {
        "토",
        "일" -> if (day == "토") "내일 일요일" else "내일 월요일"
        else -> "로동 하세요"

    }
    println(result)
}

6) when 내부의 값을 받아서 재처리 가능

Any 변수

fun whenPractice(value : Any) {

    // 실무에서는 when 내부의 값을 받아서 다시 처리하기도 함
    val result = when (val day = value) {
        "토",
        "일" -> if (day == "토") "좋아" else "너무 좋아"
        
        in 2..4 -> {}
        in listOf(1, 2, 3) 0 {}
        else -> "로동 하세요"

    }
}

코틀린에서는 삼항 연산자는 없고

자바와 달리 조건문 (statement) 이 아니라 조건식 (expression) 이다

식의 값을 받을 수 있다