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

2024. 7. 2. 23:12·Language/Kotlin
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
저작자표시 비영리 변경금지 (새창열림)

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

[Kotlin] 코틀린 클래스  (258) 2024.07.02
[Kotlin] 코틀린 함수  (2) 2024.07.02
[Kotlin] 코틀린 리스트/배열  (0) 2024.07.02
[Kotlin] 코틀린 문자열  (0) 2024.07.02
[Kotlin] 코틀린 Null Safety  (0) 2024.07.02
'Language/Kotlin' 카테고리의 다른 글
  • [Kotlin] 코틀린 클래스
  • [Kotlin] 코틀린 함수
  • [Kotlin] 코틀린 리스트/배열
  • [Kotlin] 코틀린 문자열
dev.parkjh
dev.parkjh
Jay Blog. Github: https://github.com/GreatPark96
  • dev.parkjh
    0과 1을 공부하다.
    dev.parkjh
  • 전체
    오늘
    어제
    • 분류 전체보기 (114)
      • Profile (2)
      • Paper (6)
      • Column (3)
      • Project (8)
        • Smart Home (3)
        • 3D Printing (5)
      • Front-End (0)
        • Web (3)
      • Back-End (8)
        • API (1)
        • DB (1)
        • Laravel (4)
      • Language (16)
        • Kotlin (11)
        • C, C++ (3)
        • JAVA (0)
        • python (2)
      • System (28)
        • Server (15)
        • Security (1)
        • Network (1)
        • Linux (8)
        • Cloud (3)
      • ETC (34)
        • Book Recommend (Computer) (3)
        • IoT (7)
        • BlockChain (7)
        • ETC (17)
      • My YOLO (1)
      • Note (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    네이버클라우드
    gitlab
    work hour
    linux job
    Kotlin
    nas
    coderabbit
    ncp container registry
    3D
    ci/cd
    3d프린터 초보
    Database
    ai code review
    코틀린개발환경
    git
    docker container
    docker private register
    Notification
    data serialization formats
    C언어
    리눅스 파일동기화
    3D프린터 입문
    docker
    Jenkins
    데이터 직렬화 포맷
    github
    3D프린터
    NAS HDD교체
    3D모델링
    kubernetes
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dev.parkjh
[Kotlin] 코틀린 조건문 / 반복문
상단으로

티스토리툴바