0과 1을 공부하다.

[Kotlin] 코틀린 조건문 / 반복문 본문

Study/Kotlin

[Kotlin] 코틀린 조건문 / 반복문

Developer_Jay 2024. 7. 2. 23:12
728x90

 

조건문

 

조건문 설명에 앞서 Statement와 Expression 은 아래와 같다.

 

  • Statement: 프로그램 문장, 하나의 값으로 도출되지 않는다.
  • Expression: 하나의 값으로 도출되는 문장

 

자바의 if-else는 Statement 였다. 즉, if 결과가 하나의 결과로 도출 될 수 없었다 반면에 kotlin에서는 if-else 는 Expression이다. 그래서 

 

 

  • if()

: 코틀린에서 if 조건문은 자바에서 사용하는 방식과 동일하다.

fun main() {
   var i = 5
    
    if (i > 10){
        println("${i} 는 10보다 작다.")
    }else if(i > 1){
        println("${i} 는 1보다 크다.")
    }else{
        println("")
    }
}

 

 

  • when{}

: 코틀린에서는 when 조건문을 사용할 수 있다. if 문 보다 좀 더 간결하게 사용할 수 있다.

fun main() {
   var i = 5
    
    when {
        i > 10 -> {
            println("${i} 는 10보다 작다.")
        }
        i > 1 -> {
            println("${i} 는 1보다 크다.")
        }
        else -> {
            println("")
        }
    }
}

 

 

코틀린은 조건문의 결과를 변수에 할당 할 수 있다.

  • if 를 이용한 조건문 결과 할당
fun main() {
   	var i = 5
    
    var result = if (i > 10){
        "${i} 는 10보다 작다."
    }else if(i > 1){
        "${i} 는 1보다 크다."
    }else{
        ""
    }
    
    println("result: " + result)
}

 

 

코틀린에서는 switch - case는 쓸 수 없다. 코틀린에서 java의 switch - case를 대체하여 아래와 같이 when 구문을 사용할 수 있다.

  • when 을 이용한 조건문 결과 할당
fun main() {
   	var i = 5
    
    var result = when {
        i > 10 -> {
           "${i} 는 10보다 작다."
        }
        i > 1 -> {
            "${i} 는 1보다 크다."
        }
        else -> {
            ""
        }
    }
    println("result: " + result)
}

 

 

코틀린에서는 앞서 말했던 것처럼 삼항 연산은 쓸 수 없다. 삼항 연산 대신 Expression 특성으로 아래와 같은 방법을 쓸 수 있다.

fun main() {
    // var result1 = i > 10 ? true : false // 삼항 연산은 쓸 수 없다.
   	var i = 5
    val result = if(i > 10) true else false
 	println("result: " + result)
}

 

 

 

 

 

반복문

 

  • for()

: 코틀린에서 for문은 여러가지 형태로 사용할 수 있다. 자바에서의 foreach 와 동일한 구조도 쓸 수 있고 변수를 초기화하고 증감하는 형태로도 쓸 수 있고 리스트 객체에서 제공하는 for문을 쓸 수도 있다.

fun main() {

    var items = listOf(1,2,3,4,5,6,7,8,9)

    // 리스트를 순회하는 for문
    for(item in items){
        println("List: " + item)
    }

    // 리스트에서 제공하는 for문
    items.forEach { item ->
        println("List: " + item)
    }

    // 변수를 초기화하고 증감하는 for문 (.. 연산자는 범위를 만드는 연산자)
    for (i in 0 .. items.size - 1){
        println("List: " + items[i])
    }

    // 2칸씩 증가하는 반복문
    for(i in 1..5 step 2){
        println("List: " + items[i])
    }

    // 하위 순환하는 반목문
    for (i in 3 downTo 1) {
        println("List: " + items[i])
    }
}

 

 

  • while()

: while , do-while은 java와 완벽하게 동일한 문법이다. break, continue도 동일하게 지원한다.

do{
    //commands
}while(expression)

while(expression){
    //commands
}

fun main() {
    var items = listOf(1,2,3,4,5,6,7,8,9)
    var i = 0;
    
    while(i <= 8){
        println("List: " + items[i])
        i++
    }
    
    var j = 0;
 
    do{
        println("List: " + items[j])
        j++
    }while(j <= 8)
}

 

 

예외처리

 

 

코틀린에서 예외처리는 try-catch 를 사용한다.

fun main() {
    val items = arrayOf(1,2,3)

    try{ 
        val item = items.get(4) // 존재하지 않는 4번 인덱스에 접근
        println("items : ${item}")
    }catch(e: Exception){ 
        print(e.message) // error message 출력
    }
}

 

 

코틀린에서의 예외처리는 자바와 차이점은 아래와 같다.

 

  • 코틀린은 자바와 다르게 checked exception과 Unchecked Exception 을 구분하지 않는다. 모두 Unchecked Exception이다.
  • 코틀린에서는 try with resources가 없어지고 확장함수 use()를 사용함.

 

 

 

 

 

※ 본 게시글의 정보가 잘못 되었거나 부족한 부분에 대한 피드백을 환영합니다.

 

 

* CopyRight 2024. Jay Park All rights reserved.

728x90

'Study > Kotlin' 카테고리의 다른 글

[Kotlin] 코틀린 클래스  (0) 2024.07.02
[Kotlin] 코틀린 함수  (0) 2024.07.02
[Kotlin] 코틀린 리스트/배열  (0) 2024.07.02
[Kotlin] 코틀린 문자열  (0) 2024.07.02
[Kotlin] 코틀린 Null Safety  (0) 2024.07.02
Comments