반응형
if문
(1) null을 허용하지 않고 초기화
fun main(){
var score = 79
var grade: String
if(score == 100){
grade = "A"
} else if(score in 90 until 100) { // until : ~미만
grade = "B"
} else if(score in 80 until 90){
grade = "C"
} else{
grade = "D" //abc 가 아닌 경우 초기 값이 없기 때문에 else 구문 추가
}
println("grade : $grade")
}
출력 결과
D
(2) null값 허용하여 초기화
fun main(){
var score = 79
var grade: String? = null // null값 허용하여 초기화
if(score == 100) {
grade = "A"
} else if(score in 90 until 100) {
grade = "B"
} else if(score in 80 until 90){
grade = "C"
}
println("grade : $grade")
}
출력 결과
grade : null
-> null값 허용하여 초기화 했기 때문에 조건문에 걸리는 문자열이 없으면 null 반환
(3) if나 else의 결과 값을 반환 받을 수 있음
fun main(){
var num1 = 10
var num2 = 20
var bigger = if(num1 >= num2) num1 else num2
println(bigger)
var score = 85
var grade = if(score == 100){
println("Perfect")
"A"
}else if(score in 90 until 100){
println("Excellent")
"B"
}else if(score in 80 until 90){
println("Good")
"ABCD".get(2) // 자바의 charAt() 과 같은 메소드 .get() : 문자열에서 인덱스값 추출 가능
}else{
println("Average")
"D" + "+"
}
println("grade : $grade")
}
출력 결과
20
Good
grade : C
반응형
when case 문
(1) 조건에 함수 반환 값이나 직접 연사을 사용할 수 있음
var num = 2
when(num){
1 -> println("One")
(1.inc()) -> println("Two")//.inc()는 값을 하나 증가시키는 함수
(1 * 3) -> println("Three")
else -> println("No Match")
}
출력 결과
Two
(2) 블럭을 이용하여 여러 명령을 기술할 수 있음
var num = 2
when(num){
1-> {
println("Hello")
println(num)
}
2 ->{
println("World")
println(num)
}
}
출력 결과
World
2
(3) 조건 처리한 결과 값을 반환 받을 수 있음
var a = 10.0
var b = 20.0
var op = '+'
var result: Double? = when(op){
'+' -> a + b
'-' -> a - b
'*' -> a * b
'/' -> a / b
else -> null
}
println(result)
출력 결과
30.0
(4) 나열 연산자를 이용하여 다중 조건을 기술할 수 있음
var grade = "c+"
var gradeResult = when(grade){
"A+", "A-", "a+", "a-" -> "수"
"B+", "B-", "b+", "b-" -> "우"
"C+", "C-", "c+", "c-" -> "미"
"D+", "D-", "d+", "d-" -> "양"
else -> "가"
}
println(gradeResult)
출력 결과
미
(5) 비교하려는 값 외에도 타입이 일치하는 경우의 조건도 작성 가능
var x: Any = "Hello"
when(x){
is String -> println(x.length) //x타입이 String 이라면
is Int -> println(x * 2)
is Double -> println(x.toInt())
else -> println("No Match")
}
출력 결과
5
(6) .. 을 사용하여 범위로 검색
var score = 100
var scoreResult = when(score){
in 91 ..100 -> "A"
in 81 ..90 -> "B"
in 71..80 -> "C"
else -> "D"
}
println(scoreResult)
출력 결과
A
반응형
'프로그래밍 > Kotlin' 카테고리의 다른 글
[코틀린 / Kotlin] class 정의 , inti 블록 (0) | 2022.10.19 |
---|---|
[코틀린 / Kotlin] 반복문(while문, do-while문, for문 , break, continue) (0) | 2022.10.19 |
[코틀린 / Kotlin] 연산자 (산술, 복합, 대입, 인덱스 연산자, in 연산자, .. 연산자 ) (0) | 2022.10.19 |
[코틀린 / Kotlin] 배열과 상수(array, const val, val) (0) | 2022.10.19 |
[코틀린 Kotilin] 기본 문법 정리( 원시 문자열, 문자열 템플릿, 엘비스(Elvis) 연산자, Any 타입, Null Check, let) (0) | 2022.10.19 |