Kotlin의 if 문은 Java와 동일하게 사용된다.
fun main() { var a = 7 if (a > 10) { println("a는 10보다 크다") } else { println("a는 10보다 작거나 같다") } }
fun main() { var a: Any = 1 if (a is Int) { println("int") } if (a is String) { println("string") } } // 출력 결과: int
다른 언어의 switch 문을 Kotlin 에서는 when으로 사용한다. Any 자료형은 어떤 자료형이든 호환되는 Kotlin의 최상위 자료형이다.
fun main() { doWhen(12L) } fun doWhen(a: Any) { when (a) { 1 -> println("정수 1이다") "DiMo" -> println("디모의 코틀린 강좌") is Long -> println("Long 타입이다") !is String -> println("String 타입이 아니다") else -> println("어떤 조건도 만족하지 않는다") } } // 실행 결과: Long 타입이다.
when을 표현식으로 사용할 때는 값을 변환할 수 있다.
fun main() { doWhen(12L) } fun doWhen(a: Any) { val result = when (a) { 1 -> "정수 1" "DiMo" -> "디모의 코틀린" is Long -> "Long 타입" !is String -> "String 타입 아니다" else -> "어떤 조건도 만족하지 않는다" } println(result) }
조건이 참인 경우 반복을 유지한다 (while, do...while).
반복 범위를 정해 반복을 수행한다 (for).
fun main() { var a = 0 while (a < 5) { println(a++) } } // 실행 결과: 0 1 2 3 4
최초 한 번은 조건 없이 do 구문을 실행한 후 while로 조건을 체크한다.
fun main() { var a = 0 do { println(a++) } while (a < 5) }
값을 1씩 증가시키며 반복합니다.
fun main() { // 0~3까지 반복 for (i in 0..3) { print("$i ") } println() // 3~0까지 반복 for (i in 3 downTo 0) { print("$i ") } println() // 0~5까지 2 단위로 반복 for (i in 0..5 step 2) { print("$i ") } println() // a~e까지 출력 for (i in 'a'..'e') { print("$i ") } } // 실행 결과: // 0 1 2 3 // 3 2 1 0 // 0 2 4 // a b c d e
fun main() { for (i in 1..10) { if (i == 3) break print(i) } } // 실행 결과: 12
fun main() { for (i in 1..10) { if (i == 3) continue print(i) } } // 실행 결과: 1245678910
다중 반복문에서 break나 continue가 적용되는 반복문을 라벨을 통해 지정할 수 있습니다.
fun main() { loop@ for (i in 1..10) { for (j in 1..10) { if (i == 1 && j == 2) break@loop println("i: $i, j: $j") } } } // 실행 결과: i: 1, j: 1