Kotlin

[Kotlin] 제어문(2) - 반복문(while, for)

KyungMin08 2024. 11. 15. 13:45
728x90

Kotlin에서는 for, while, do-while문이 있다. 각각 살펴보면서 이해해보도록하자.

 

1. while 문

while (조건식) {
    동작 코드
    증감식
}

증감식을 사용하지 않으면 무한으로 반복되어 컴퓨터가 열받으니 증감식은 꼭 사용해야 한다.

 

* while

while은 조건을 검사하고, 만족하면 본문을 처리한 후 조건 검사로 다시 돌아간다.

위 코드는 i가 5보다 작거나 같을 때까지 반복하겠다는 코드이다. i++을 작성한 이유는 i가 증가하지 않으면 조건은 계속 참(true)이 될거고 컴퓨터가 터져버리기 때문에 1씩 증가하게 만들어 조건이 계속 참(true)이 될 수 없도록 만든거다.

 

* do-while

do {
    동작할 코드
} while (조건식)

do-while문은 while문과 달리 무조건 한 번은 실행한 후, 조건이 참(true)인지 거짓(false)인지 판단해 참(true)이면 반복 수행한다.

조건을 만족하지 못하더라고 무조건 한 번은 실행(보장)된다.

do문이 무조건 한번은 실행하는 구문이다. 실행한 후 조건이 참(true)이면 do문으로 가서 동작할 코드를 수행한다. 거짓(false)일 경우 while문을 빠져나간다.


2. for 문

for (변수명 in 범위) {
   반복 수행할 코드
}

첫번째는 기본 for문으로 1 ~ 3까지 반복 수행하는 코드이다.

두번째는 step이 있는데 이건 증가해주는 연산자이다. '반복 도중에 2씩 증가해라'라는 의미이다.

세번째에는 downTo가 있는데 이건 Java의 i--와 같다. 위에서 아래로 내려가면서 반복 수행해준다.

네번째는 방금 말한 두 녀석을 활용해서 만든 코드이다. '10부터 1까지 내려가는데 2씩 감소해라'라는 의미이다.

표현이 맞는지는 모르겠는데 본 필자는 이렇게 이해하고 있다.


until

until은 마지막 범위에 -1을 해준다.

Java에서는 length - 1을 해줘야 했었는데..


배열을 활용한 for문

for (변수명 in 배열) {
   반복 수행할 코드
}

첫번째는 array 배열에 있는 원소를 하나씩 꺼내어 i변수에 담고, 해당 원소를 출력해주는 코드이다. 해당 변수에 각각의 원소를 담을 때 원소를 한번에 꺼내어 담는게 아니라 배열의 크기 만큼 반복 수행하면서 담는다.

 

세번째는 배열의 크기 만큼 범위를 설정해 반복하고 stringArray2 배열에 index로 접근해 해당 원소를 출력하는 코드이다. 본 필자는 '이런 식으로도 반목문을 배열과 함께 사용할 수 있구나'라는 걸 보여주고 싶었다.

 

네번째는 인덱스와 index에 해당하는 원소를 받아 출력해주는 코드이다. 이건 많이 사용할 것 같아 넣어봤다.

어떤 느낌인지 대충 감만 잡고 직접해보면서 알아가는게 공부에 더 질이 좋을 것 같다.

 

forEach

배열이나 리스트에 사용하고 코드의 간결성이 좋으며 람다 식이다.

배열을 이용한 for문에서 예로 봤던 코드들을 위 코드처럼 간결하게 표현이 가능하다. 단, 배열과 리스트에서만 사용 가능하다.

it은 해당 배열의 원소이며 배열의 크기 만큼 반복해 원소를 꺼내온다. 배열을 이용한 for문에서 첫번째에 해당하는 코드라고 보면 되겠다.

forEachIndexed는 대충 뭔 느낌인지만 알고가자. 사실 forEachIndexed는 배열을 이용한 for문에서 네번째에 해당하는 코드이다.

위 코드들은 배열을 이용한 for문에 예로 봤던 코드들을 간결하게 줄인거라고 이해하면 된다.


Break, Continue

반복문에서는 주로 많이 사용하는 것 break continue가 있다.

break반복문을 종료시킨다는 의미로 반복문을 강제 종료하고 싶을 때 사용한다.

continue해당 반복을 건너뛴다는 것을 의미하며 해당 반복이 필요하지 않을 때 사용한다.


잘못된 부분이나 부족한 부분이 있을 수 있습니다. 댓글로 남겨주시면 감사하겠습니다.

728x90