상상하라 그리고 현실로 만들어라.

상상하는 모든 것이 미래다.

Kotlin과 Android/Kotlin

코틀린 반복문 For(), While() 사용법

월터제이(Walter J) 2020. 10. 23. 09:00

안녕하세요, 반갑습니다!

 

지난번에 코틀린의 제어문 중에 조건문인 if() 와 when() 에 대해 정리해봤습니다.

그럼 제어문의 나머지, 반복문에 대해서도 정리해봐야겠죠?

 

그래서 오늘 그 두가지에 대해 정리해보겠습니다.

 

for() 와 while()

 

1. for()

for() 는 대표적인 반복문 함수입니다.

많은 프로그래밍 언어에서도 반복문으로 쓰고 있는데요.

 

코틀린에서는 어떻게 사용할 수 있을까요?

먼저 코틀린 for()의 원형입니다.

forStatement (used by loopStatement)
  : 'for'
    '(' annotation* (variableDeclaration | multiVariableDeclaration) 'in' expression ')'
    controlStructureBody?
  ;

 

사용법은 자바의 향상된 for() 인 foreach() 와 매우 흡사합니다.

다만 구분자로 'in' 을 사용한다는 것이 다릅니다.

아래 소스처럼 'downTo' 를 사용하여 감산할 수도 있고, 'step' 으로 증감할 크기를 지정할 수 있습니다.

//구분자로 'in' 을 사용. 
for (i in 1..3) {	//0~3 까지 총 4번 반복
    println(i)
}

for (i in 6 downTo 0 step 2) {	//6에서 0까지 2씩 감소
    println(i)
}

 

배열 또는 리스트의 경우 이렇게 작성할 수 있습니다.

배열 또는 리스트이 크기를 가져오는 함수를 사용하여 그 크기만큼 반복합니다.

for (i in array.indices) {	//배열 또는 리스트의 크기만큼
    println(array[i])
}

 

아니면, 배열 또는 리스트의 withIndex() 함수를 이용할 수 있는데요.

그 배열 및 리스트의 index와 value를 반복 출력 할 수 있습니다.

for ((index, value) in array.withIndex()) {
    println("the element at $index is $value")
}

 

 

 

2. while()

반복할 범위를 알고 있으면 for() 를 쓰지만, 모르는 경우 조건이 만족할 때까지 반복하는 반복문입니다.

 

while() 의 원형입니다.

whileStatement (used by loopStatement)
  : 'while' '(' expression ')' controlStructureBody
  | 'while' '(' expression ')' ';'
  ;

 

그리고 do-while()의 원형입니다.

doWhileStatement (used by loopStatement)
  : 'do' controlStructureBody? 'while' '(' expression ')'
  ;

 

사용법입니다.

기존 자바와 별다를게 없습니다.

 

for() 와 다르게 특정 조건을 만족할 때까지 무한 반복하기 때문에 반드시 빠져나가야할 코드가 있어야됩니다.

그리고 do-while() 의 경우 최초 1번은 무조건 실행하는 반복문인데요.

그래서 특별한 경우를 제외하고는 do-while() 은 거의 쓰지 않는 것 같습니다.

while (x > 0) {
    x--
}

do {
    val y = retrieveData()
} while (y != null) // y is visible here!

 

 

 

반복문의 경우 기존 자바와 많이 다르진 않은 것 같습니다.

for() 의 문법이 바뀐 점을 제외하고는 눈에 띄는 차이점은 없는 것 같아요.

 

그럼 저는 다음 포스팅에서 뵙겠습니다.

감사합니다!

반응형