Kotlin의 반복문 다루기
향상된 for문 (for-each문)
- 숫자가 있는 리스트나 배열같은 하나씩 출력하는 경우 주로 사용
for each문 예제
1
2
3
4
5
val numbers = listOf(1L, 2L, 3L)
for (number in numbers) {
println(number)
}
Java와 다른 점
- 컬렉션을 만드는 방법 :
listOf(1L, 2L, 3L)=> 추후 추가 설명 예정 :대신in을 사용
Java와 공통점
numbers에 오는 타입은Iterable이 구현된 타입이라면 모두 가능
전통적인 for문
for문 예제
1
2
3
for(i in 1..3){
println(i)
}
..은 범위를 나타내는 연산자
위에서 1..3은 1 ~ 3까지를 뜻 한다.
for문 내려가는 예제
1
2
3
for(i in 3 downTo 1){
println(i)
}
..대신 downTo를 사용하여 3 부터 1까지 내려가는 반복을 수행
for문 정해진 만큼 올리는 경우 예제
1
2
3
for(i in 1..5 step 2) {
println(i)
}
in과 ..을 이용해서 1 ~ 5까지 반복 시키고 step으로 2개씩 증가 하도록 지정
Progression과 Range
- 동작 원리
..연산자는 범위를 만들어 내는 연산자IntRange라는 실제 class에서IntProgression (등차수열)을 상속 받는다
3 downTo 1:시작 값 3/끝 값 1/공차 -1인 등차 수열1..5 step 2:시작 값 1/끝 값 5/공차 2인 등차 수열
downTo와 step은 함수!!
- 두개 모두
중위 함수다음에 다룰 예정변수.함수이름(argument)대신변수 함수이름 argument로 사용할 수 있도록 해주는 것
- step
1 2 3 4
public infix fun IntProgression.step(step: Int): IntProgression { checkStepIsPositive(step > 0, step) return IntProgression.fromClosedRange(first, last, if (this.step > 0) step else -step) }
- downTo
1 2 3
public infix fun Int.downTo(to: Int): IntProgression { return IntProgression.fromClosedRange(this, to, -1) }
while문
- while문 예제
1 2 3 4 5
var i = 1 while (i <= 3){ println(i) i++ }
Java와 같은 방식으로 작성
do-while또한 같다
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.


