오늘은 코틀린에서 반복문을 사용하는 방법에 대해 알아보자.
코틀린에서는 다양한 형태의 반복문을 제공한다. 대표적으로 for, while, do-while 등이 있다.
이번 포스팅에서는 for, while, do-while에 대해 알아볼 것이다.
1. for 문
1) for 기본 사용
for (item in collection) {
// 반복할 코드
}
for의 기본 사용법은 다음과 같다.
여기서 collection은 반복할 대상 컬렉션이다.
item은 컬렉션에서 추출된 요소를 나타내는 변수이다.
즉, for문은 컬렉션의 모든 요소를 순서대로 추출하여 'item' 변수에 저장하고, 그 내용을 반복할 코드에서 사용한다.
컬렉션이란?
컬렉션(Collection)은 자료구조를 다루는 데 사용되는 객체들의 집합이다.
크게 리스트(List), 집합, 맵으로 분류되며 각각의 컬렉션은 다음과 같은 특징을 가지고 있다.
- 리스트 (List) : 데이터를 순서대로 저장하며, 중복된 데이터를 허용한다. 인덱스를 이용하여 특정 위치의 데이터에 접근할 수 있다.
- 집합 (Set) : 데이터를 순서 없이 저장하며, 중복된 데이터를 허용하지 않는다. 데이터의 유무를 검색하는데 빠른 속도를 가지고 있다.
- 맵 (Map) : 키-값 쌍으로 데이터를 저장하며, 중복된 키를 허용하지 않는다. 키를 이용하여 값을 검색할 수 있다.
for(변수명 in 범위) {
// 반복할 코드
}
쉽게 이렇게 이해하면 된다.
① for 기본 예제
fun main() {
for(i in 1..5) {
println(i)
}
}
변수명 i를 설정하고, 범위는 1부터 5까지 설정한다.
[출력결과]
1
2
3
4
5
② for 기본 배열 예제
fun main() {
val arr = arrayOf(1, 2, 3, 4, 5)
for (num in arr) {
println(num)
}
}
'arrayOf'는 배열을 생성하는 함수이다.
[출력결과]
1
2
3
4
5
2) 변수의 증가, step 사용
'step'을 사용하면 반복문에서 사용되는 변수의 증가하는 크기를 지정할 수 있다.
즉, 증가시키는 간격을 지정한다.
for (i in 0..10 step 2) {
println(i)
}
본 예제에서는 'step 2' 라고 설정되어 있다.
그러므로, 0부터 10까지 2간격으로 반복한다.
[출력결과]
0
2
4
6
8
10
3) 변수의 감소, downTo 사용
증가하는 변수의 값을 지정할 때는 'step'이 있다면, 감소할 때는 'downTo'가 있다.
'downTo'는 변수의 값을 감소시키면서 반복을 수행한다.
for (i in 10 downTo 0 step 2) {
println(i)
}
위 예제를 보면 downTo와 step이 둘 다 쓰였다.
'증가할 때는 step, 감소할 때는 downTo라면, 감소할 때는 step을 쓰면 안 되지 않나?'라는 의문이 생길 것이다.
정확히 말하면, downTo는 for문에서 변수를 감소시키는 범위를 지정하는 것으로, 변수의 값을 어디까지 감소시킬지를 지정하는 것이다.
예제에는 10부터 0까지 범위를 지정한 후, step을 사용하여 2씩 감소하라고 한 것을 알 수 있다.
[출력결과]
10
8
6
4
2
0
2. while 문
while 문은 조건식이 '참'인 경우, 반복을 수행한다.
While(조건식) {
// 반복할 코드
}
fun main() {
var i = 0
while (i < 5) {
println("i is $i")
i++
}
}
변수 i를 0으로 초기화 하고, while 문을 통해 i가 5보다 작은 동안 반복하도록 지정한다.
먼저 i가 5보다 작은지 판단 후, "i is $i"을 출력한다. i의 값을 출력 후, i의 값을 1씩 올린다.
이러한 과정을 거치다 보면 i(=5) < 5의 경우가 생길 것이고, "i is 4" 출력을 마지막으로 종료한다.
[출력결과]
i is 0
i is 1
i is 2
i is 3
i is 4
여기서 주의할 점은 while 문은 초기식과 증감식이 따로 존재하지 않기 때문에 위 예제처럼(i++) 루프 내에서 직접 변수의 값을 변경해야 한다.
3. do-while 문
do-while 문은 while과 달리, 먼저 한 번 코드를 실행 후, 조건이 참인지 판단 후, 참이면 반복을 수행한다.
즉, 조건을 만족하지 못하더라도 한번은 무조건 실행하는 것이다.
do {
// 반복할 코드
} While(조건식)
fun main() {
var i = 0
do {
println("i is $i")
i++
} while (i < 5)
}
변수 i를 0으로 초기화 후, do-while 문 안의 코드를 한 번 수행한다.
i의 값을 출력하고, i를 1씩 증가시킨다.
그 후, i가 5보다 작은지 판단한다.
이 과정을 반복하면, i(=5) < 5 인 순간이 오고, 이 경우, 반복문을 탈출하여 종료한다.
[출력결과]
fun main() {
var i = 0
do {
println("i is $i")
i++
} while (i < 5)
}
do-while문도 while문과 마찬가지로 조건을 만족하면 수없이 반복하기 때문에 무한 반복이 되지 않게 조심해야 한다.
'Kotlin' 카테고리의 다른 글
[Kotlin] 코틀린 컬렉션 (Collection) (0) | 2023.05.17 |
---|---|
[Kotlin] 코틀린 배열 arrayOf(), intArrayOf(), Array (0) | 2023.05.15 |
[Kotlin] 코틀린 조건문 if-else 와 when 사용법 파헤치기 (0) | 2023.05.03 |
[Kotlin] 코틀린 메소드 (Method) 선언하기 : 메소드 정의, 함수의 타입, 매개변수, 반환값 정의 방법 (0) | 2023.05.02 |
[Kotlin] 코틀린 연산자 (Operators)와 우선순위 (2) | 2023.04.08 |