조건문 when 사용법
fun main() {
val x = 3
when (x) {
2, 3, 5, 7 -> println("x is a prime number between 1 and 10.")
in 1..10 -> println("x is a number between 1 and 10, but not a prime number.")
else -> println("x isn't a prime number between 1 and 10.")
}
}
// 결과
x is a number between 1 and 10, but not a prime number.
fun main() {
val x = 20
when (x) {
2, 3, 5, 7 -> println("x is a prime number between 1 and 10.")
in 1..10 -> println("x is a number between 1 and 10, but not a prime number.")
is Int -> println("x isn't a number between 1 and 10.")
else -> println("x isn't a number.")
}
}
// 결과
x isn't a number between 1 and 10.
null
Kotlin에서 null을 허용하는 변수를 선언하려면 유형 끝에 ? 연산자를 추가해야 합니다. 예를 들어 String? 유형은 문자열이나 null을 보유할 수 있는 반면 String 유형은 문자열만 보유할 수 있습니다. null을 허용하는 변수를 선언하려면 null을 허용하는 유형을 명시적으로 추가해야 합니다. null을 허용하는 유형이 없으면 Kotlin 컴파일러는 null을 허용하지 않는 유형이라고 추론합니다.

오류 구문
fun main() {
var favoriteActor: String? = "Sandra Oh"
println(favoriteActor.length)
}

올바른 구문
fun main() {
var favoriteActor: String? = "Sandra Oh"
println(favoriteActor?.length)
}
// 출력
9
if/else 표현식
fun main() {
val favoriteActor: String? = "Sandra Oh"
val lengthOfName = if(favoriteActor != null) {
favoriteActor.length
} else {
0
}
println("The number of characters in your favorite actor's name is $lengthOfName.")
}
// 출력
The number of characters in your favorite actor's name is 9.
?: Elvis 연산자
?: Elvis 연산자는 ?. 안전 호출 연산자와 함께 사용할 수 있는 연산자입니다. ?: Elvis 연산자를 사용하면 ?. 안전 호출 연산자가 null을 반환할 때 기본값을 추가할 수 있습니다. if/else 표현식과 비슷하지만 더 직관적인 방식으로 표현됩니다.
변수가 null이 아닌 경우에는 ?: Elvis 연산자 앞의 표현식이 실행됩니다. 변수가 null이면 ?: Elvis 연산자 뒤의 표현식이 실행됩니다.

fun main() {
val favoriteActor: String? = "Sandra Oh"
val lengthOfName = favoriteActor?.length ?: 0
println("The number of characters in your favorite actor's name is $lengthOfName.")
}
// 출력
The number of characters in your favorite actor's name is 9.