코틀린에는 조건에 따라 횟수와 범위를 설정하는 대표적인 방법으로 for 문과 while 문이 있습니다.
다양한 실행 예시를 통해 살펴보겠습니다.
for 문
▷ 실행 예시 1
fun main(args: Array<String>) {
for (i in 0..5) {
print("$i ") // 0 1 2 3 4 5
}
for (j in 0 until 5) {
print("$j ") // 0 1 2 3 4
}
}
가장 일반적인 for 문 작성법입니다.
for (변수명 in range)의 꼴로 range가 a..b의 경우 a에서 b까지(b포함), a until b는 a에서 b이전까지 수행합니다.
위의 출력 예시에서 5의 출력 여부를 통해 확인할 수 있습니다.
▷ 실행 예시 2
fun main(args: Array<String>) {
for (i in 0..10 step 2) {
print("$i ") // 0 2 4 6 8 10
}
for (j in 10 downTo 0 step 2) {
print("$j ") // 10 8 6 4 2 0
}
}
for문 range 뒤 step을 설정하지 않은 경우 자동으로 인덱스를 1씩 증가시킵니다.
특정 정수배로 인덱스를 증가시키고 싶은 경우에는
range 뒤 step n설정 시 인덱스를 n배로 증가시키며 for문 내부를 실행하게 됩니다.
인덱스의 크기를 감소시키고 싶은 경우는 step -1이 아닌 downTo 키워드를 사용합니다.
마찬가지로 downTo 키워드에서도 step을 이용해 인덱스의 감소 설정이 가능합니다.
▷ 실행 예시 3
for문을 이용해 배열의 각 요소와 인덱스에 접근하는 것도 가능합니다.
fun main(args: Array<String>) {
val array = arrayOf(1,2,3,4,5)
for (i in array) {
print("$i ") // 1 2 3 4 5
}
for (i in array.indices step 2) {
print("${array[i]} ") // 1 3 5
}
array.forEachIndexed { index, item ->
print("[$index, $item] ") // [0, 1] [1, 2] [2, 3] [3, 4] [4, 5]
}
}
위에서 공부했던 for문과 사용법은 매우 유사합니다.
forEachIndexed 구문을 사용해 동시에 배열의 인덱스와 요소에 접근할 수 있습니다.
대부분 굉장히 직관적으로 코드가 구현되어 있어 자동완성 키워드를 확인하시면 어렵지 않게 구현이 가능합니다.
while 문
for문은 조건절을 통해 횟수와 범위를 제한한다면 while문은 조건절이 만족하지 않을 때까지 while문 블록을 수행합니다.
즉, while문의 조건절이 참이라면 while문을 무한히 반복합니다.
fun main(args: Array<String>) {
var number = 0
while (number < 10) {
print("$number ")
number++
}
println("\nwhile문 종료")
println("number : $number")
}
while문의 조건절을 만족하는 number가 10보다 작을 때까지 number를 출력합니다.
number가 10이 되면 조건절을 만족하지 않기 때문에 while문을 빠져나와 프로그램이 종료됩니다.
▷ while문 제어하기
반복문 구현 시 조건절에 관계없이 반복문을 중단해야 하는 경우가 있습니다.
이때, break와 continue를 이용합니다. break는 반복문을 중단하고 빠져나와 다음 코드를 실행해라, continue는 continue 이하의 코드는 무시하고 반복문의 조건절로 이동해라. 라는 의미를 가집니다.
fun main(args: Array<String>) {
var number = 0
while (number < 10) {
if (number == 3) {
number++
continue
}
if (number == 7) {
break
}
print("$number ")
number++
}
println("\nwhile문 종료")
println("number : $number")
}
위의 예시에서 number가 3이 되면 number의 1을 더하고 number를 출력하지 않고 while문의 조건절로 이동합니다.
number가 7이 되면 조건절에 관계없이 while문을 중단하고 빠져나와 while문 다음 코드를 실행합니다.
'Kotlin' 카테고리의 다른 글
[Kotlin] Flow에서 ColdStream과 HotStream의 차이 (0) | 2023.06.03 |
---|---|
[Kotlin] 배열(Array)과 리스트(List) + ArrayList (0) | 2022.12.26 |
[Kotlin] readLine()과 자료형 변환 (0) | 2022.12.20 |