출처 : 깡샘의 코틀린프로그래밍
조건문
if 표현식
- 코틀린에서는 if는 표현식이다.
표현식은 수학에서 말하는 ‘수식’과 거의 같은 의미이다. 예를 들어 2+3 과 같은 표현은 수학에서 말하는 수식이며,
이를 프로그래밍 언어에서 표현식이라 부른다. 표현식에는 상수와 연산자외에도 상수나 변수 혹은 함수등이 포함
될 수 있다. 극단적으로는 하나의 변수 이름만 있더라도 그것을 표현식이라 부를 수 있다.
fun main(args: Array<String>) {
val a = 5
if (a < 10) println("$a < 10")
//if - else
if (a > 0 && a <= 10) {
println("0 < $a <= 10")
} else if(a > 10 && a <= 20){
println("10 < $a <=20")
}else {
println("$a > 20")
}
}
val result=if (a > 10) "hello" else "world"
- else문이 꼭 정의되어야 한다.
- 여러 라인이 작성되는 경우 if표현식에 의한 데이터는 맨 마지막 라인이다.
if(a>10) "hello"//ok
val result2=if(a>10) "hello"//error
val result2 = if (a < 10) {
print("hello....")
10+20
} else {
print("world...")
20+20
}
val result3 = if (a > 10) 20
else if(a > 20) 30
else 10
when 표현식
- C혹은 자바의 switch 구문과 비슷하다.
- when은 코틀린에서 표현식이다.
fun main(args: Array<String>) {
val a2=1
when (a2) {
1 -> println("a2 == 1")
2 -> println("a2 == 2")
else -> {
println("a2 is neither 1 nor 2")
}
}
}
val data1="hello"
when(data1){
"hello"->println("data1 is hello")
"world"->println("data1 is world")
else -> println("data1 is not hello or world")
}
- 여러 값의 조건을 표현할 수 있다.
when(data2){
10, 20 -> println("data2 is 10 or 20")
30, 40 -> println("data2 is 30 or 40")
some() -> println("data2 is 50")
30 + 30 -> println("data2 is 60")
}
- 특정 범위를 조건으로 명시한다.
val data3=15
when(data3){
!in 1..100 -> println("invalid data")
in 1..10 -> println("1 <= data3 <= 10")
in 11..20 -> println("11 <= data3 <== 20")
else -> println("data3 > 20")
}
val list= listOf<String>("hello","world","kkang")
val array= arrayOf<String>("one","two","three")
val data4="kkang"
when(data4){
in list -> println("data4 in list")
in array -> println("data4 in array")
}
- 다양한 타입의 데이터에 대한 조건
fun testWhen(data: Any){
when(data){
1 -> println("data value is 1")
"hello" -> println("data value is hello")
is Boolean -> println("data type is Boolean")
}
}
- if-else의 대체용으로 다음을 쓸 수 있다.
val data5=15
when {
data5<=10 -> println("data5 < 10")
data5>10 && data5<=20 -> println("10 < data5 <= 20")
else -> println("data5 > 20")
}
- 표현식
val data6=3
val result2= when(data6){
1 -> "1...."
2 -> "2...."
else -> {
println("else....")
"hello"
}
}
'Backend > Kotlin' 카테고리의 다른 글
[Kotlin] 흐름 제어 구문과 연산자(2/2) - 코틀린 잠시 중단 (0) | 2022.09.13 |
---|---|
[Kotlin] 데이터 타입 (0) | 2022.09.05 |
[Kotlin] 변수와 함수 (0) | 2022.09.01 |
[Kotlin] 코틀린 이해 (0) | 2022.08.31 |