-
조건문과 반복문프로그래밍 언어/Kotlin 2023. 7. 14. 04:36
조건문
코틀린의 조건문은 If문과 when문이 있다.
조건문 If
코틀린의 if문은 일반적인 프로그래밍 언어와 동일한 방식으로 동작한다.
val a = 12 if (a > 12) { println("large") } else if (a > 6) { println("medium") } else { println("small") }
또한 변수에 직접 if문을 사용하여 마치 삼항연산자와 같이 사용할 수 있다.
val a = 5 val b = 10 val isBigger = if (a > b) "yes is Bigger" else "$b is small"
이때 if문의 코드 영역이 여러 줄일 경우에도 마지막 줄을 반환하여 변숫값으로 사용할 수 있다.
val a = 5 val b = 10 val isBigger = if (a > b) { val c = 25 "yes is Bigger" // 마지막 값이 isBigger에 저장 } else { val sum = a + b "sum: $sum" // 마지막 값이 isBigger에 저장 }
조건문 when
조건문 when은 다른 언어의 switch문과 거의 유사하지만, 조금 더 다양한 방법으로 활용할 수 있다.
기본적인 when의 사용방법은 아래와 같다.
when (파라미터) { 비교값1 -> { // 파라미터가 비교값1과 같은 경우 실행 } 비교값2 -> { // 파라미터가 비교값2와 같은 경우 실행 } else -> { // 파라미터가 위의 어떠한 값과도 동일하지 않으면 실행 } }
만약 특정 값을 비교하는데 결과 처리가 동일하다면 콤마를 이용해 한 번에 비교할 수 있다.
when (파라미터) { 비교값1, 비교값2 -> { // 파라미터가 비교값1 또는 비교값2와 같은 경우 실행 } 비교값3 -> { // 파라미터가 비교값3과 같은 경우 실행 } else -> { // 파라미터가 위의 어떠한 값과도 동일하지 않으면 실행 } }
만약 범위 값을 비교하고 싶다면, in을 사용할 수 있다.
val age = 23 when (age) { in 10 .. 19 -> { // age가 10이상 19이하인 경우 실행 } in 20 until 30 -> { // age가 20이상 30미만인 경우 실행 } else -> { // 파라미터가 위의 어떠한 값과도 동일하지 않으면 실행 } }
when을 사용할 때 파라미터를 함께 사용하지 않는 경우, if문처럼 사용할 수 있다.
val age = 25 val year = 2023 when { age == 50 -> { println("age 50") } age > 20 -> { println("adult") } year > 2020 -> { println("over 2020") } else -> { println("else") } }
when 역시 if문처럼 삼항연산자로 사용할 수 있다. 이때 위의 모든 형태의 when을 사용할 수 있다.
val age = 25 val result = when (age) { in 10 until 20 -> "down" in 20 .. 30 -> "up" else -> "nothing" }
반복문
코틀린의 반복문은 for문과 while문이 있다.
for 반복문
for문의 기본적인 사용법은 아래와 같다.
for (i in 시작값 .. 종료값) { println("index: $i") }
이때 위의 when 조건문에서 사용한 방식과 같이 until을 사용하거나, step, downTo와 같은 키워드를 함께 사용하여 다양한 방식으로 반복을 진행할 수 있다.
for (i in 1 .. 10) { // i가 1부터 10까지 반복 } for (i in 1 until 10) { // i가 1부터 9까지 반복 } for (i in 1 .. 10 step 2) { // i가 1부터 10까지 2씩 증가하며 반복 } for (i in 10 downTo 1) { // i가 10부터 1까지 1씩 감소하며 반복 } for (i in 10 downTo 1 step 2) { // i가 1부터 10까지 2씩 감소하며 반복 }
또는 배열, 컬렉션과 같은 iterator를 함께 사용하여 반복자의 엘리먼트를 반복하여 사용할 수 있다. 이는 Python의 for in문, JavaScript의 for of 문과 유사하다.
val iterator = mutableListOf("MON", "TUE", "WED") for (e in iterator) { println(e) // MON, TUE, WED 순으로 출력 }
while 반복문
while은 특정 조건이 만족할 때까지 반복하는 반복문으로, 일반적인 while문과 동일하다.
while (조건식) { // 실행 코드 }
만약 do와 함께 사용하여 do while문으로 사용하면, while문의 조건식에 관계없이 무조건 한 번은 반복문 스코프 내의 코드를 실행한다.
do { println("무조건 한번은 실행") } while (false)
반복문 제어
for 반복문과 while 반복문 모두 반복문 내부에서 break문과 continue문을 사용할 수 있다.
break는 반복문을 탈출하기 위해, continue는 그 아래의 코드를 실행하지 않기 위해 사용한다.
for (i in 1 .. 10) { if (i > 5) break // i가 5보다 큰 경우 반복문 탈출 println(i) } for (i in 1 .. 10) { if (i > 5) continue // i가 5보다 큰 경우 아래의 코드를 실행하지 않음 println(i) }