[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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바