코틀린에서의 프로그램 흐름제어 방법에 대해 알아보겠습니다. 흐름 제어에는 조건문과 반복문이 사용됩니다.
범위 연산자 in
조건문과 반복문에서 자주 사용되는 범위 연산자 in입니다. 변수가 시작값과 마지막값 사이 범위에 있는지 확인하여 true / false를 리턴합니다.
변수명 in 시작값..마지막값
// 변수 >= 시작값 && 변수 <= 마지막값
변수명 !in 시작값..마지막값
// !(변수 >= 시작값 && 변수 <= 마지막값)
조건문
if
조건식이 성립할 경우 수행할 문장을 {} 블록 안에 적습니다. 조건에 해당하지 않을 경우 else if 조건식을 검사합니다. else if 조건식의 개수에는 제한이 없습니다. 모든 조건식에 해당하지 않을 때는 else {} 블록 안의 문장이 수행됩니다.
else if와 else 블록은 생략할 수 있습니다.
if (조건식) {
...
} else if (조건식) {
...
} else {
...
}
⭐ if문을 효과적으로 사용하는 방법 : Early Return
if (A조건식) {
if (B조건식) {
if (C조건식) {
// 통과
} else {
// 실패
}
} else {
// 실패
}
} else {
// 실패
}
다음과 같이 과도하게 중첩된 if문은 가독성이 떨어집니다. 이럴 때 Early Return 방식을 사용한다면 좀 더 효과적으로 코드를 구현할 수 있습니다.
if (!A조건식) return
if (!B조건식) return
if (!C조건식) return
// 통과
when
switch-case문 대신 when문을 사용합니다. switch-case문보다 유연한 분기가 가능하고 break를 사용하지 않아도 됩니다. 인자를 사용하는 when문과 사용하지 않는 when문이 있습니다.
인자 O
when (인자) {
인자에 일치하는 값 혹은 표현식 -> 수행할 문장
인자에 일치하는 범위 -> 수행할 문장
...
else -> 수행할 문장
}
- 수행할 문장은 {}을 사용해 여러 문장을 표현할 수 있습니다.
- 인자에 일치하는 값 혹은 표현식을 한 번에 여러 개 표현하기 위해서는 쉼표를 사용합니다.
- 인자에 일치하는 범위 예시 ) in 10..100
인자 X
when {
조건[혹은 표현식] -> 수행할 문장
}
❓ 표현식이란?
- 표현식은 결괏값을 반환하는 계산식을 의미합니다.
반복문
for
범위를 지정해 반복합니다. 반복하면서 요소변수는 순차적으로 범위 시작부터 마지막까지의 값을 갖습니다.
for ( 요소변수 in 컬렉션 또는 범위 ) {
...
}
- 상행 : in 시작..끝 ( 예시 : 1>2>3>4>5 )
- 하행 : in 시작 downTo 끝 ( 예시 : 5>4>3>2>1 )
- 상행 건너뛰기 : in 시작..끝 step 증가할 수 ( 예시 : 1>3>5 )
- 하행 건너뛰기 : in 시작 downTo 끝 step 감소할 수 ( 예시 : 5>3>1 )
while / do-while
while문은 조건식이 참일 때 블록 {}을 실행합니다.
do-while문은 일단 한 번 블록{}을 실행하고 조건식을 검사하여 계속 반복할 건지 결정합니다.
while (조건식) {
...
}
do {
...
} while (조건식)
repeat 함수
repeat함수를 사용해서 간결하게 반복할 수 있습니다.
repeat(반복횟수) {
...
}
break문과 continue문
break : 반복문을 빠져나갈 때 사용합니다.
continue : 본문 진행을 멈추고 다시 반복 조건을 검사합니다.
반복문 이름 붙이기
break와 continue를 사용하면 자신이 포함된 반복문에서 빠져나가거나 다음반복으로 넘어갈 수 있었습니다. 하지만 중첩 반복문을 사용할 때 자신이 포함된 반복문이 아닌, 그 반복문을 감싸는 바깥의 반복문을 빠져나가게 할 순 없을까요?
중첩 반복문 앞에 (이름@) 형식으로 이름을 붙이고 break문과 continue문에 이름을 지정해 줌으로써 ( break@반복문이름, continue@반복문이름) 특정한 반복문을 벗어나거나 반복문의 끝으로 이동하게 할 수 있습니다.
LOOP1@ for (i in 1..5) {
LOOP2@ for (j in 1..5) {
if ( j == 3 )
break@LOOP1;
}
}
// LOOP2이 아닌 LOOP1 반복문을 빠져나갑니다.
조건문과 반복문에 대해 살펴봤습니다. 조건문과 반복문은 프로그래밍에서는 빠질 수 없는 흐름제어 방식입니다. 조건문과 반복문만 잘 써도 훌륭한 알고리즘을 만들어낼 수 있습니다. 코틀린에서는 when을 사용해 자바보다 효율적인 방법으로 조건문을 구현할 수 있다는 것이 핵심입니다. 다음글에서는 코틀린의 함수형 프로그래밍에 대해 다룹니다. 이번 글도 읽어주셔서 감사합니다.
'개발언어 > Kotlin : 코틀린' 카테고리의 다른 글
코틀린 익히기 6 - 프로퍼티와 object (0) | 2023.09.25 |
---|---|
코틀릭 익히기 5 - 클래스와 객체 (0) | 2023.09.21 |
코틀린 익히기 4 - 함수형 프로그래밍 (0) | 2023.09.20 |
코틀린 익히기 2 - 자료형, 연산자 (0) | 2023.02.27 |
코틀린 익히기 1 - 코틀린이란 무엇인가? (0) | 2023.02.25 |