Language/Kotlin
조건문과 반복문 Kotlin
JunOnJuly
2024. 7. 11. 23:48
728x90
if~else 문
if 문의 조건을 만족하면 if 부분을 실행하고, 그렇지 않으면 else 부분을 실행합니다. 또 else if 를 사용해 여러 조건을 나열할 수도 있습니다.
fun main() {
var num: Int = 100
if (num > 100) {
println("data > 100")
} else if (data == 100) {
println("data == 100")
} else {
println("data < 100")
}
}
다른 언어에서의 일반적인 if~else 문과 다를것 없이 사용할 수 있지만, 코틀린에서는 if~else 문을 표현식으로도 사용할 수 있습니다. 즉, 결괏값을 반환하는 계산식으로도 사용할 수 있습니다. 다만 표현식으로 사용할 때에는 else 를 생략할 수 없습니다.
fun main() {
var num: Int = 100
val result = if (num > 100) {
println("data > 100")
true // -> 반환값
} else {
println("data =< 100")
false // -> 반환값
}
}
다만 if~else 표현식은 각 영역의 마지막 줄만 반환합니다.
When 문
when 키워드 다음의 소괄호에 들어간 데이터가 조건이 되고, 해당 값에 따라 구문이 실행됩니다. 다른 언어에서의 switch~case 문과 비슷합니다.
fun main() {
var data = "apple"
when(data) {
"apple" -> println("apple)
"banana" -> println("banana")
else -> {
println("something")
}
}
}
또, 단순히 데이터가 아닌 데이터 타입, 범위 등 다양하게 조건을 걸 수 있습니다.
fun main() {
var data = 100
when(data) {
is String -> println("String")
10, 50 -> pirntln("10 or 50")
in 1..9 -> println("1~9")
else -> println("else")
}
}
}
또한 데이터를 명시하지 않고 조건만 명시할 수도 있습니다.
fun main() {
var data = 100
when {
data < 100 -> println("< 100")
data == 100 -> println("100")
data > 100 -> println("> 100")
}
}
}
그리고 when 또한 표현식으로 사용할 수 있으며, 역시 else 영역을 생략할 수 없습니다.
fun main() {
var data = 100
val result = when {
data < 100 -> println("< 100")
data == 100 -> println("100")
data > 100 -> println("> 100")
else -> println("else")
}
}
}
반복문 for, while
코틀린에서 for 문을 사용할 때 조건에는 주로 범위 연산자인 in 을 사용합니다.
fun main() {
var sum: Int = 0
for (i in 1..10) {
sum += i
}
}
다만 조건을 좀 더 다양하고 복잡하게 사용할 수 있습니다.
- for (i in 1..10) -> 1 에서 10 까지 (1 과 10 포함)
- for (i in 1 until 10) -> 1 에서 10 까지 (10 미포함)
- for (i in 2..10 step 2) -> 2 에서 10 까지 2씩 증가
- for (i in 10 downTo 1) -> 10 에서 1 까지 1씩 감소
또 조건을 숫자로 명시하지 않고 컬렉션 타입의 데이터 수만큼 반복하게 할 수 있습니다.
fun main() {
var arr = arrayOf(1, 2, 3)
for (i in data.indices) {
print(data[i])
}
}
또 인덱스와 데이터를 함께 가져오고 싶다면 withIndex() 함수를 사용합니다. 파이썬의 enumerate() 와 비슷하게 작동합니다.
fun main() {
var arr = arrayOf(1, 2, 3)
for ((index, value) in data.withIndex()) {
print(value)
}
}
while 문은 다른 언어와 비슷하게 작동하는데, 조건이 참이면 중괄호로 지정된 영역을 반복해 실행합니다.
fun main() {
var num: Int = 0
while (num < 10) {
num += 1
}
}
728x90