var max: Int
if(a > b) max = a
else max = b
val max = if(a > b) a else b
val num = 0
val result = if(num > 0)
"양수 값"
else if(num < 0)
"음수 값"
else
"0"
package chap05.section1
fun main() {
print("Enter the score: ")
val score = readLine()!!.toDouble()
var grade = 'F'
if(score >= 90.0){
grade = 'A'
}else if(score >= 80 && score <= 89.9){ // 비교 연산자, 논리곱 연산자
grade = 'B'
}else if(score >= 70 && score <= 79.9){
grade = 'C'
}
println("score: $score, grade: $grade")
}
package chap05.section1
fun main() {
print("Enter the score: ")
val score = readLine()!!.toDouble() // 콘솔로부터 한줄 입력 받기
var grade = 'F'
if(score >= 90.0){
grade = 'A'
}else if(score in 80.0..89.9){ // 시작값과 마지막값도 범위에 포함됨!
grade = 'B'
}else if(score in 70.0..79.9){
grade = 'C'
}
println("score: $score, grade: $grade")
}
when(x){
1 -> print("x == 1")
2 -> print("x == 2")
else -> {
print("x는 1, 2가 아니다.")
}
}
when문에서는 switch-case문과 달리 break를 써줄 필요가 없다!!
package chap05.section1
fun main() {
print("Enter an integer: ")
val x = readLine()!!.toInt()
when(x){
0, 1 -> print("x == 0 or x == 1") // 여러 조건과 비교
else -> print("other")
}
}
package chap05.section1
import java.lang.Integer.parseInt
fun main() {
val s = "555"
print("Enter an integer: ")
val x = readLine()!!.toInt()
when(x){
parseInt(s) -> print("equals") // 함수의 반환값과 x를 비교
else -> print("other")
}
}
package chap05.section1
fun main() {
print("Enter an integer: ")
when(readLine()!!.toInt()){
in 1..10 -> print("x는 1 이상 10 이하") // in 연산자 사용
!in 10..20 -> print("x는 10 이상 20 이하가 아님")
else -> print("other")
}
}
package chap05.section1
fun main() {
val str = "안녕하세요"
val result = when(str) {
is String -> "문자열" // is 키워드 사용
else -> false
}
}
package chap05.section1
fun main() {
print("Enter the score: ")
val score = readLine()!!.toDouble() // 콘솔로부터 한줄 입력 받기
val grade = when(score){
in 90.0..100.0 -> 'A'
in 80.0..89.9 -> 'B'
in 70.0..79.9 -> 'C'
else -> 'F'
}
println("score: $score, grade: $grade")
}
package chap05.section1
fun main() {
print("Enter the score: ")
val 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 = 'F'
}
println("score: $score, grade: $grade")
}
코드량이 많아지긴 하지만, 인자가 여러 개일 때는 특정 인자에 제한하지 않고 다양한 조건을 구성할 수 있다는 장점이 있다.
fun main() {
var sum = 0
for(x in 1..10) sum += x
println("sum: $sum")
}
fun main() {
for(i in 5 downTo 1) print(i) // 54321
for(i in 5..1) print(i) // error (아무것도 출력 안 됨)
}
fun main() {
for(i in 1..5 step 2) print(i) // 135
println()
for(i in 5 downTo 1 step 2) print(i) // 531
}
fun main() {
var total = 0
for(num in 1..100 step 2) total += num
println("Odd total: $total") // 홀수의 합
total = 0
for(num in 0..99 step 2) total += num
println("Even total: $total") // 짝수의 합
}
fun main() {
var i = 1
while(i <= 5){
println("$i") // 1 2 3 4 5
i++
}
}
cf) 데몬 프로그램은 백그라운드에서 계속 돌아가야 하므로, 내부적으로 무한루프를 돌린다.
while(true){
temp = 온도 검사
if(temp > 한계 온도) { 경고 발생 }
...
}
package chap05.section2
fun main() {
do{
print("Enter an integer: ")
val input = readLine()!!.toInt()
for(i in 0 until input){ // input 값은 제외
for(j in 0 until input){
print((i + j) % input + 1)
}
println()
}
}while(input != 0)
}