프로그래밍의 처음과 끝인(?) 제어문!

JAVA와 개념적으로 다른 것은 없으나, 문법은 조금 다르므로 사용 시 헷갈릴 수 있을 것 같다.

 

1. if~else

fun main() {
    println(doIf(1))
    println(doIf("TEST"))
    println(doWhen(null))    
}

fun doIf(a:Any?):String {
    if(a == 1) {
    	return "a == 1"
    }else if(a is String) {
        return "a is String"
    }else {
        return "a is .. > " + a
    }
}
<코드 실행 결과>
a == 1
a is String
a is .. > null

if~else문은 JAVA와 별반 다르지 않다.

중간에 나오는 is 연산자는 JAVA의 instanceof 연산자와 비슷하다.

'~는 이 자료형과 호환 가능한가요' 라는 건데..

instanceof 보다 직관적인 이름이다.

 

"웰시코기 instanceof 개" 보다 "웰시코기 is 개" 가 더 알아보기 쉬우니까!

 

2. when

fun main() {
    println(doWhen(1))
    println(doWhen("TEST"))
    println(doWhen(null))    
}

fun doWhen(a:Any?):String {
    when(a) {
        1 -> return "a == 1"
        is String -> return "a is String"
        else -> return "a is .. > " + a
    }
}
<코드 실행 결과>
a == 1
a is String
a is .. > null

when은 JAVA의 switch~case와 같다고 보면 된다.

switch 대신 when을 쓰고, case ~ : 대신 -> 를 사용하는 정도의 차이.

 

차이가 있다면

여러 조건에 대해 동일한 조건으로 처리하고 싶을 때 정도일 듯

▼ 예시

더보기

[A가 1이거나 2면 "Type A"라는 문자열을 반환] 하는 경우

   1) JAVA

switch(a) {
	case 1 :
    case 2 :
    	return "Type A";
    default :
    	return "Type B";
}

   2) Kotlin

when(a) {
	1, 2 -> return "Type A"
	else -> return "Type B"
}

 


앗.. 점심시간 끝났어.. 

'개발 > Kotlin' 카테고리의 다른 글

코틀린 공부 - 함수(1)  (0) 2021.08.02
코틀린 기초 5 - object  (0) 2020.06.25
코틀린 기초 - 4(고차함수, 람다)  (0) 2020.06.24
코틀린 기초 - 2 (배열, 반복문)  (0) 2020.06.16
코틀린 기초 - 1  (0) 2020.06.16

+ Recent posts