쏭식
Ssongcode;
쏭식
전체 방문자
오늘
어제
  • 분류 전체보기 (106)
    • JAVA (21)
      • Basic (21)
    • Kotlin (14)
      • Basic (14)
    • Android (64)
      • Basic (24)
      • JETPACK (30)
      • Compose (8)
      • 파고들기 (2)
    • Project (4)
    • etc (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • compose
  • 객체지향
  • 메소드
  • Jetpack
  • 자료구조
  • DataBinding
  • AAC
  • 자바
  • 배열
  • 변수
  • 코틀린코테
  • 코드업100제
  • 코테
  • workmanager
  • Room
  • livedata
  • 컴포즈
  • 백준
  • Android
  • Adapter
  • ViewModel
  • 프로젝트회고
  • 상속
  • 코딩테스트
  • 기초100제
  • Kotlin
  • 코틀린
  • 리사이클러뷰
  • 알고리즘
  • mvvm

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
쏭식

Ssongcode;

Kotlin/Basic

[Kotlin/Basic] 코틀린에서의 제어문

2022. 7. 25. 23:59

1. 코틀린에서의 if else

fun validateScoreIsNotNegative(score : Int){
    if(score !in 0..100){
        throw IllegalArgumentException("${score}의 범위 이상")
    }
}

 

자바에서의 if else문과 차이가 없다.

위에서 주의할 점은 자바에서는 if(score <0 && score>100) 이렇게 표현했다면,

위의 코드처럼  0..100 이렇게 표현할 수 있다.

 

또 다른 예시를 살펴보자!

fun getPassOrFail(score : Int) : String {
    return if(score > 50) {
        "P"
    }else{
        "F"
    }
}

여기서 자바하고와의 차이점을 발견할 수 있다.

자바에서 if~else는 Statement이지만,

코틀린에서는 Expression이다.

즉, 하나의 값으로 도출되는 문장을 사용한다. 

-> 위와 같이 바로 return이 가능하여 코틀린에서는 자바처럼 삼항연산자가 필요없다!!

 

자바에서는 String test = return if (score>50) "P" 이러한 식이 불가능하였지만

코틀린에서는 위의 코드처럼 가능하다!!!

2. when

//when
//이도 하나의 익스프레션이기 때문에 한번에 return가능
//switch 대신 when
// case대신 화살표로 표시하면 됨.
//default 대신 else로 사용해야함
fun getGradeWithSwitch(score : Int): String{
    return when(score/10){
        9 -> "A"
        8 -> "B"
        7 -> "C"
        else -> "D"
    }
}

자바에서 switch case문 대신 코틀린에서는 when을 사용한다.

위의 코드처럼 해당하는 값 -> return되는 값 이런식으로 표현한다!

 

//when에 조건부에는 어떠한 expression이 들어갈 수 있다(ex. is Type)
//따라서 다음과 같은 코드가 가능함
fun startsWithA(obj : Any): Boolean{
    return when (obj){
        is String -> obj.startsWith("A")
        else -> false
    }
}

위의 코드와 같이 Type하고 비교할 수도 있다!

is Type으로 작성하면 된다!!

 

fun judgeNumber(number: Int){
    when(number){
        1,0,-1 -> println("ㅎㅎ")
        else -> println("1, 0, -1 이 아닙니다.")
    }
}

자바에서는 위의 코드를 if(number==1 || number==0 .... ) 이렇게 표현해야 했지만

코틀린으로는 위의 코드처럼 편리하게 작성 가능하다!

여러 값이 해당하는 경우는 콤마로 분리하여 구분할 수 있다!

 

fun judgeNumber2(number: Int){
    when{
        number == 0 -> println("0")
        number % 2 == 0 -> println("짝")
        else -> println("홀")
    }
}
fun getGradeWithSwitch1(score : Int): String{
    return when(score){
        in 90..99 -> "A"
        in 80..89 -> "B"
        in 70..79 -> "C"
        else -> "D"
    }
}

마지막으로, 자바에서 switch케이스문은 단 하나의 값으로 떨어지는 경우에만 사용하였지만

이렇게 when 안에 계산식을 넣어 if문처럼 사용할 수도 있다!!

 

정리하자면 자바에서의 switch는 kotlin에서 when으로 대체되었고,

when은 switch문보다 더 강력한 기능을 갖는다!!!!!

 

 

 

GitHub - SsongSik/Kotlin_Java_Practice: Practice kotlin grammar compared to Kotlin and Java.

Practice kotlin grammar compared to Kotlin and Java. - GitHub - SsongSik/Kotlin_Java_Practice: Practice kotlin grammar compared to Kotlin and Java.

github.com

 

저작자표시 (새창열림)

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

[Kotlin/Basic] 코틀린에서의 예외처리  (0) 2022.08.13
[Kotlin/Basic] 코틀린에서의 반복문  (0) 2022.07.27
[Kotlin/Basic] 코틀린에서의 연산자  (0) 2022.07.22
[Kotlin/Basic] 코틀린에서의 Type  (0) 2022.07.21
[Kotlin/Basic] 들어가며, val/var 차이, 코틀린에서의 null  (0) 2022.07.20
    'Kotlin/Basic' 카테고리의 다른 글
    • [Kotlin/Basic] 코틀린에서의 예외처리
    • [Kotlin/Basic] 코틀린에서의 반복문
    • [Kotlin/Basic] 코틀린에서의 연산자
    • [Kotlin/Basic] 코틀린에서의 Type
    쏭식
    쏭식

    티스토리툴바