본문 바로가기
개발언어/Kotlin : 코틀린

코틀린 익히기 3 - 조건문과 반복문

by 개발자D 2023. 9. 19.

조건문과 반복문

코틀린에서의 프로그램  흐름제어 방법에 대해 알아보겠습니다. 흐름 제어에는 조건문과 반복문이 사용됩니다.

 

범위 연산자 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을 사용해 자바보다 효율적인 방법으로 조건문을 구현할 수 있다는 것이 핵심입니다. 다음글에서는 코틀린의 함수형 프로그래밍에 대해 다룹니다. 이번 글도 읽어주셔서 감사합니다.

 

코틀린 익히기 4 - 함수형 프로그래밍

함수형 프로그래밍 함수형 프로그래밍은 함수형 기능들을 사용해 변수의 사용을 최소화한 프로그래밍입니다. 코틀린은 함수형 프로그래밍이 가능한 언어로, 함수를 사용해 간략하고 우아한 프

devdharu.tistory.com