파게로그
[Basic] if, when expression 본문
if
Java에서와 같이 if문을 사용할 수 있다.
fun main(args: Array<String>) {
var score = readLine()!!.toInt()
if (score > 90) {
println("Great!")
} else if (score > 80) {
println("Good!")
} else {
println("Ha-ha!")
}
}
Kotlin에서는 statement가 아니라 expression으로서 if를 사용할 수도 있다.
fun main(args: Array<String>) {
var score = readLine()!!.toInt()
var result = if (score > 90) {
"Great!"
} else if (score > 80) {
"Good!"
} else {
"Ha-ha!"
}
println(result)
}
아래와 같이, if의 branch가 2개 이상의 expression을 포함할 때, 마지막 expression은 block의 value로서 반환된다.
fun main(args: Array<String>) {
var num = readLine()!!.toInt()
var oddOrEven : String
var oddOrEvenKor = if (num % 2 == 0) {
oddOrEven = "even"
"짝수"
} else {
oddOrEven = "odd"
"홀수"
}
println("eng: $oddOrEven")
println("kor: $oddOrEvenKor")
}
when
마치 Java의 switch-case문과 유사하다. when이 switch의 역할을, else가 default의 역할을 하며, case는 생략되는 것이다.
fun main(args: Array<String>) {
var a = 20
var b = 4
print("operator : ")
var operator = readLine()
var result = when (operator) {
"+" -> a + b
"-" -> a - b
"*" -> a * b
"/" -> a / b
else -> "$operator is invalid operator"
}
println("$a $operator $b = $result")
}
아래처럼, 여러 case를 묶어서 작성할 수도 있다.
fun main(args: Array<String>) {
var num = readLine()!!.toInt()
var greeting = when (num) {
2, 3, 5, 7 -> "hello, prime"
1, 4, 6, 8, 9, 10 -> "hello, composite"
else -> "hello, $num"
}
println(greeting)
}
아래처럼, 범위로 묶어서 작성할 수도 있다.
fun main(args: Array<String>) {
var num = readLine()!!.toInt()
when (num) {
in 1..80 -> println("hello, monkey")
in 80..130 -> println("hello, human (1)")
}
when (num) {
in 80..130 -> print("hello, human (2)")
}
}
▪ break가 자동으로 달려있다고 생각하면 될 듯하다.
▪ 범위는 닫힌 범위이다.
▪ 위 프로그램의 결과는 다음과 같다.
80
hello, monkey
hello, human (2)
한편, when문을 통해서 대입이 이루어지는 것이 아니라면 else가 없어도 된다.
'콤퓨타 왕기초 > Kotlin' 카테고리의 다른 글
[Basic] functions (0) | 2021.06.08 |
---|---|
[Basic] for, while, iterate through range, break, continue (0) | 2021.06.08 |
[Basic] Input and Output (0) | 2021.06.07 |
[Basic] Expression, Statement, Block (0) | 2021.06.07 |
[Basic] 형 변환(type casting) (0) | 2021.06.07 |
Comments