포스트

[Kotlin] 조건문

play.kotlinlang.org

코틀린 코드를 연습해볼 수 있는 공식사이트


1. If 문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var x = 5
var y = 10


if (x < 10) x = 7


if (x > y) {
  println(x)
} else if (x == y) {  // 두 번째 조건 판별
  println(y)
} else {              // 모든 조건에 맞지 않을 때
  println("$x $y")
}


// if문의 결과를 바로 변수값에 할당 가능하다
val max = if (a > b) {
    a
} else {
    b
}

1.1. If 표현식(삼항연산자)

Java에서는

(조건) ? true인 경우 값 : false인 경우 값

으로 삼항연산자를 사용했다


Kotlin에서는

if (조건) true인 경우 값 else false인 경우 값

형태로 파이썬과 유사하지만 순서가 다르다

1
2
3
4
5
6
7
8
9
10
11
// Kotlin 삼항연산자
  var a = if (5 < 4) 50 else 40

  // else if도 사용가능하다
  val c = if (x > a) c else if (a > b) a else b


// Java 삼항연산자
  int j = (5 < 4) ? 50 : 40;
// Python 삼항연산자
  p = 50 if 5 < 4 else 40



2. When 문

java의 switch-case, python의 match-case처럼 여러 분기 조건 중 충족되는 분기를 실행하는 조건문이다

표현식(expression)으로 사용될 경우에는 else 구문이 필요하다

else 가 없거나 처리할 수 없는 입력 케이스가 있다면 컴파일러는 오류를 발생한다

2.1. When 기본

1
2
3
4
5
6
7
8
9
var x = readln().toInt()

when (x) {
    1 -> print("x == 1")  // x == 1 일 때 실행
    2, 3 -> print("x == 2 or 3")  // x == 2 or 3일 때 실행
    else -> {             // 그 외의 경우
        print("x는 1도 2도 아니다")
    }
}

2.2. When 범위

1
2
3
4
5
6
7
8
9
10
var x = 5

when (x) {
    in 1..5 -> print("x == 1~5")   // x == 1~5 일 때 실행
    !in 1..5 -> print("x != 1~5")  // x != 1~5 일 때 실행
    is Int -> print("x는 숫자형")
    else -> {             // 그 외의 경우
        print("???")
    }
}

java나 python과 달리 범위를 지정할 수 있다

만약 조건을 만족하는 것이 여러 개라면 먼저 처리된 값이 출력된다


2.3. When 조건

1
2
3
4
5
6
7
8
9
10
var x = 1
var y = 7

when {
    x > y -> print("x가 크다")  // 실행 X
    y > x -> {
        print("y가 크다")  // 실행
        x = 10             // x값을 10으로
    }
}

자료 참조 코틀린 공식 문서

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.