Today
-
Total
-
  • [안드로이드]코틀린 기본 문법 - 5(제어문)
    Coding/Android 2019. 6. 19. 13:04

    Kotlin에서의 제어문은 4개로 나뉩니다

    (if, when, for, while)

     

    when을 제외하고는 많이 봐왔던 것입니다. 나머지는 Java에서의 제어문과 비슷하다고 할 수 있겠습니다.

     


    If

    If문은 자바와 똑같이, 한 줄이면 블록을 생략할 수 있고

    if ( a < b ) max = b

    파이썬처럼 콜론(:)으로 블록을 지정하는 것이 아닌 Java와 똑같이 중괄호로 블록을 만듭니다.

    if(a > b){
    	max = a
    } else {
    	max = b
    }

    다음처럼 if문을 식처럼 활용도 가능합니다.

    var max = if (a > b) a else b

    a가 b보다 크다면 max는 a, 작거나 같다면 b가 될 것입니다.

     


    For

    Kotlin에서의 for문은 배열이나 컬렉션을 순회하는 문법으로 Python의 for-in 문과 Java의 foreach 문과 비슷합니다. 

     

    1. 배열 순회

    val numArray = arrayOf(1, 2, 3, 4, 5)
    
    for (num in numArray) { // num은 numArray를 순회
    	println(num)
    }

    num은 numArray의 요소인 (1,2,3,4,5)를 차례대로 순회할 것입니다.

     

    2. 범위 지정

    꼭 배열이나 컬렉션을 순회하는 것 뿐 아니라 직접 범위를 지정하여 반복할 수도 있습니다.

    Python의 for-range 혹은 기존에 사용하던 for문과 가장 비슷한 형태라고 할 수 있습니다.

    // 1~3까지 출력
    for(i in 1..3)
    {
    	println(i)
    }
    
    
    // 0~10까지 2씩 증가하며 출력
    for (i in 0..10 step 2)
    {
    	println(i)
    }
    
    // 10부터 0까지 2씩 감소하며 출력
    for(i in 10 DownTo 0 step 2)
    {
    	println(i)
    }

    사용 효과는 비슷하지만 다소 생소한 구문이 보입니다.

    '..'을 이용하여 범위를 지정하고, (Python에서 range(3) 이런식으로 범위를 지정한것과 대비됩니다)

    step 키워드를 통하여 증가/감소하는 간격을 조절합니다.

    또한 감소 범위는 downTo라는 키워드를 사용합니다.

     


    While

    Kotlin에의 while문은 Java에서의 while문과 똑같습니다.

     

    var x = 10
    while (x > 0)
    {
    	x--
        	println(x)
    }

    When

    When이라는 제어문은 처음 들어보셨을 겁니다. 이는 Java의 switch문에 대응하는 문입니다.

    값이 하나인 경우, 여러개인 경우, 범위에 해당되는 경우 등을 자유롭게 지정할 수 있다는 것이 특징ㅇ비니다.

    또한 else 구문을 통하여 나머지에 대한 경우도 처리할 수 있습니다.

     

    var x = 1
    
    when (x) {
    	1-> println("x == 1") // 값 하나
        2, 3 -> println("x == 2 or x = 3") // 여러 값은 콤마로 표현
        in 4..7 -> println("4~7") // 범위 지정
        !in 8..10 -> println("8부터 10 사이가 아님") // 부정
        else -> { // 나머지
        	println("나머지 경우")
        }
    }

    이를 활용하면 다음과 같이 사용할 수도 있습니다.

     

    var numberStr = 1
    
    var numStr = when (num % 2) {
    	0 -> "짝" // 짝수인 경우 numStr = "짝"
        else -> "홀" // 홀수인 경우 numStr ="홀"
    }

     

    댓글