Kotlin 조건문

if문은 조건문으로 연산자 중 비교연산자를 사용합니다.
다음과 같이 사용합니다.

 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
31
32
33
34
35
36
fun main(args: Array<String>){
    var a:Int = 2
    var b:Int = 5

    if(a<b){
        println("b big")
    }

    if(a>b){
        println("a big")
    }
    else{
        println("b big")
    }

    if(a==b){
        println("a,b same")
    }
    else if(a > b){
        println("a big")
    }
    else{
        println("b big")
    }

    var bigger = if(a>b) a else b
    println(bigger)

    val num:Int? = null
    val num2 = num ?: 10
    println(num2)

    val num3:Int? = 15
    val num4 = num3 ?: 10
    println(num4)
}

26번 줄을 보시면 C언어 에서는 안되는 방법이 있습니다. 바로 때려 박는다.?라고 해야하나...
이 부분은 충격적이였습니다.
저렇게 표현하는 방법도 있다는 것을 아셨으면 합니다.

29번줄 부터는 엘비스 연산자라고 합니다.
코틀린은 널 세이프(Null safe)한 언어이기 때문에 문법적으로 null에 대해 대응할 수 있도록 지원하고 있습니다.
뭔가 3항 연산자랑 비슷한데 조건식 부분이 무조건 null로 설정된 것 같습니다. num이 null이면 10으로 출력하고 null이 아니라면 num을 출력하도록 합니다.

if문을 사용하는 조건문이 있는데 또 다른 조건문이 있습니다. C언어에서 switch문이죠

 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
31
32
33
fun main(args: Array<String>){
    var a:Int = 2
    when(a){
        1 ->{
            println("1")
        }
        2 ->{
            println("2")
        }
        else ->{
            println("no!")
        }
    }

    val result = when(a) {
        1 -> 10
        2 -> 20
        is Int -> println("Int")
        else -> 0
    }
    println(result)

    when(a) {
        is Int -> println("Int")
        else -> 0
    }
    when(a) {
        in 0..10 -> {
            println("0 ~ 10")
        }
        else -> 0
    }
}

when은 "~ 할때"로 해석합니다. 이처럼 when안에 있는 조건일 때 특 정값을 출력하는 합니다.
when역시 if문 처럼 변수에 값을 넣을 수 있습니다. 그리고 24,28번을 보시면 is, in이 있습니다. is 는 자료형을 확인할 수 있는 방법이고 in은 값이 특정 범위에 있는지를 판단하는 방법입니다. 이 부분은 신선했습니다. C언어에서는 비교연산자에 논리연산자에 if문에 써서 나누고 했는데 말이죠...(물론 간단하게 하는 법도 있습니다.)

댓글

이 블로그의 인기 게시물

파이썬을 이용한 image to pdf 변환 프로그램

젯슨 나노 - GPIO