프로그래밍의 처음과 끝인(?) 제어문!
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 |