[Kotlin] 프로그램 흐름 제어
by HeshAlgo728x90
1. 조건문 (if)
val number = 0
val result = if (number > 0)
"양수값"
else if (number < 0)
"음수값"
else
"0"
1) in 연산자
if (80.0 <= score && score <= 89.9)
위 식은 비교 연산자의 결과가 둘 다 true가 되어야 전체식이 true가 된다.
매번 2개의 조건을 비교 연산자의 논리합 연산자로 연결하는 것은 번거로울 수 있다.
코틀린에서는 포함 여부를 확인 하는 In 연산자와 2개의 점(..)으로 구성된 범위 연산자를 제공한다.
변수 이름 in 시작값..마지막값 |
시작값과 마지막값은 포함하는 범위를 계산한다. 즉 in 80..90인 경우 80과 90을 모두 포함한다.
그러면 in을 이용해 위에 논리합 연산자로 작성된 식은
if (score in 80.0..89.9)
이렇게 작성 될 수 있다.
2. 조건문 (when)
코틀린에서는 조건이 많은 경우를 대비한 when문을 제공
when문은 함수처럼 인자가 있는 경우와 없는 경우 2가지 사용법이 존재한다.
1) 인자를 사용하는 when
when (인자) { 인자에 일치하는 값 혹은 표현식 -> 수행할 문장 인자에 일치하는 범위 -> 수행할 문장 ... else -> 수행할 문장 } |
when (x) {
1 -> print("x == 1")
2 -> print("x == 2")
else -> { // 블록은 자유
print("x는 1, 2가 아닙니다.")
}
}
만약 일치되는 조건을 한번에 여러 개 표현하려면 쉼표(,)를 이용
when (x) {
0, 1 -> print("x == 0 or x == 1")
else -> print("기타")
}
또한, in 연산자를 이용해 범위도 지정할 수 있습니다.
when (x) {
in 1..10 -> print("x는 1이상 10이하 입니다.")
in 11..20 -> print("x는 11이상 20이하 입니다.")
else -> print("x는 범위에 포함되지 않습니다.")
}
2) 인자를 사용하지 않는 when
when { 조건[혹은 표현식] -> 실행할 문장 .... } |
fun main() {
print("Enter the score: ")
var score = readLine()!!.toDouble()
var grade: Char = 'F'
when {
score >= 90.0 -> grade = 'A'
score in 80.0..89.9 -> grade = 'B'
score in 70.0..79.9 -> grade = 'C'
score < 70.0 -> grade = 'D'
}
print("Score: $score, Grade: $grade")
}
Any를 이용하면 다양한 자료형의 인자를 받을 수 있다.
fun main() {
cases("Hello") // String
cases(1) // int
cases(System.currentTimeMillis()) // 현재시간
cases(MyClass()) // 객체
}
fun cases(obj: Any) {
when(obj) {
1 -> print("Int: $obj")
"Hello" -> print("String: $obj")
is Long -> print("Long: $obj")
!is String -> print("Not a String")
else -> print("Unknown")
}
}
'Language > 코틀린(Kotlin)' 카테고리의 다른 글
Iterator와 Sequence (1) | 2023.11.19 |
---|---|
Scope Function (0) | 2021.10.26 |
[Kotlin] 코틀린 null 처리 및 자료형 변환 (0) | 2021.03.30 |
블로그의 정보
꾸준히 공부하는 개발 노트
HeshAlgo