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는 해당 반복을 건너뛴다는 것을 의미하며 해당 반복이 필요하지 않을 때 사용한다.
잘못된 부분이나 부족한 부분이 있을 수 있습니다. 댓글로 남겨주시면 감사하겠습니다.
'Kotlin' 카테고리의 다른 글
[Kotlin] JVM, Kotlin 컴파일 과정 (2) | 2024.12.02 |
---|---|
[Kotlin] 컬렉션(List, Set, Map), 관련 함수들 (1) | 2024.11.18 |
[Kotlin] 배열(Array) (0) | 2024.11.14 |
[Kotlin] 제어문(1) - 조건문(when, if-else) (0) | 2024.11.14 |
[Kotlin] 형변환과 Null 안전성(Null Safety) (0) | 2024.11.14 |