안드로이드 개발자의 창고
[12일차 Kotlin] When 본문
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT
📖 when이란?
- when은 Java에서의 switch case와 비슷하다.
- 수식이나 값의 결과에 따라 수행될 부분을 결정하게 되며 자바와 다르게 정수 뿐만 아니라 다양한 타입의 값을 비교할 수 있다.
📖 when 기본 형식
when (변수 or 수식) {
값1 -> 코드
값2 -> 코드
}
📖 예제 코드
fun main() {
val a1 = 10
when(a1){
1 -> println("a1은 1입니다") // 수행될 코드가 한줄만 있다면 { }를 생략한다.
5 -> { // 수행할 코드가 두 줄 이상이면 { }로 묶어준다.
println("a1은 5입니다")
println("코드가 두 줄")
println("코드가 세 줄")
}
10 -> println("a1은 10입니다")
else -> println("a1은 1, 5, 10이 아닙니다")
}
// 두 가지 이상의 조건을 만족하는 것도 설정이 가능하다.
val a2 = 3
when(a2){
1, 2 -> println("a2는 1이거나 2입니다")
3, 4 -> println("a2는 3이거나 4입니다")
5, 6 -> println("a2는 5이거나 6입니다")
else -> println("a2는 1, 2, 3, 4, 5, 6이 아닙니다")
}
// 논리값은 허용되지 않는다.
val a5 = true
when(a5){ <<< 오류 발생
}
// 범위 지정
val a5 = 5
when(a5){
in 1..3 -> println("a5는 1부터 3사이입니다")
in 4..6 -> println("a5는 4부터 6사이입니다")
in 1..6 -> println("a5는 1부터 6사이입니다")
else -> println("a5는 1 ~ 6사이의 숫자가 아닙니다")
}
val str1 = setValue1(1)
val str2 = setValue1(2)
val str3 = setValue1(3)
println("str1 : $str1") // 문자열1
println("str2 : $str2") // 문자열2
println("str3 : $str3") // 그 외의 문자열
val str4 = setValue2(1)
val str5 = setValue2(2)
val str6 = setValue2(3)
println("str4 : $str4") // 문자열1
println("str5 : $str5") // 문자열2
println("str6 : $str6") // 그 외의 문자열
}
fun setValue1(a1:Int) : String{
if(a1 == 1){
return "문자열1"
} else if(a1 == 2){
println("두 번째 경의 수")
return "문자열2"
} else {
return "그 외의 문자열"
}
}
// when 사용
// when에 설정한 변수의 값에 따라서 해당 부분에 제일 마지막에 작성한 값을 반환한다.
fun setValue2(a1:Int) = when(a1){
1 -> "문자열1"
2 -> {
println("두 번째 경우의 수")
"문자열2"
}
else -> "그 외의 문자열"
}
'Computer > Kotlin' 카테고리의 다른 글
[13일차 Kotlin] 객체지향 프로그래밍 (0) | 2023.05.14 |
---|---|
[12일차 Kotlin] 반복문(Loop) (0) | 2023.05.12 |
[12일차 Kotlin] 제어문 (0) | 2023.05.12 |
[12일차 Kotlin] 함수 (0) | 2023.05.12 |
[12일차 Kotlin] 변수와 자료형 (0) | 2023.05.11 |