Uknow's Lab.
article thumbnail

 

 

프로그래밍은 굉장히 많은 일을 할 수 있습니다.

계신기부터 자율 주행 시스템까지,

수많은 기술들이 그렇겠지만, 정보 기술의 등장 이래

프로그래밍은 현대 사회의 근간을 바꿔왔고, 바꿀 기술이라 생각합니다.

이런 프로그래밍을 활용해 할 수 있는 일 중 하나는 바로 반복적인 일을 처리하는 것이지요.

 

네 그렇습니다. 이번에 소개해 드릴 것은 코틀린의 반복문입니다.

 

1. for

C와 Java 처럼 코틀린에서도 for을 사용한 반복문이 있습니다. 하지만 구조는 조금 다릅니다.

 

<kotlin />
// Java for(int i = 0; i<3; i++) { System.out.println(i); } // 출력 0 1 2 // Kotlin for(i in 0 until 3) { // 0 부터 3 미만까지 반복 (0~2) println(i) } // 출력 0 1 2

 

처음 코틀린의 반복문을 봤을 땐, 자바와 파이썬을 합쳐놓은 듯한 느낌을 받았습니다.

 

for(i in a until b)와 같이 사용하면, a부터 b미만의 값을 i에 할당합니다.

물론, for(i in 0 .. 3)와 같이 사용하여 0이상 3이하의 값만큼 반복할 수도 있습니다.

 

 

1.1. 1부터 10까지의 합 구하기

<kotlin />
var sum = 0 for(i in 1 .. 10) { sum += i } println(sum) // 출력 >>> 55

 

반복문과 세트로 항상 같이 나오는 예시이죠. 1부터 10까지의 합 구하기 입니다.

1 .. 10 (혹은 1 until 11)으로 1부터 10까지의 범위를 돌며, sum에 값을 누적시켜 구할 수 있습니다.

 

1.2. for in arr

<kotlin />
val arr = arrayOf(3, 5, 7, 10) for(i in arr) { println(i) } // 출력 >> 3 5 7 10 ================================= val strings = listOf("Hello", "Kotlin", "World!") for(str in strings) { println(str) } // 출력 >> Hello Kotlin World!

 

배열 내 원소를 매개로 반복문을 돌릴 수도 있습니다.

자바의 확장 for문과 비슷한 느낌이네요.

저는 개인적으로 매우 자주 쓰고 있습니다.

 

 

1.3. arr.indics

<kotlin />
val arr = Array(3) { it } for(i in arr.indices) { println(arr[i]) } // 출력 >> 0 1 2

indices는 Array 혹은  List의 프로퍼티 입니다. 해당 배열의 범위를 반환하는데요.

길이가 3인 배열의 경우 0 .. 2를 반환하며,

for(i in arr.indices)는 for(i in 0 .. 2)와 같다고 볼 수 있습니다.

 

 

1.4. 특정 간격을 두고 반복하기

<kotlin />
for(i in 0 until 10 step 2) { // 2 간격으로 반복 println(i) } // 출력 >> 0 2 4 6 8

 

step으로 간격을 지정하여 반복문을 돌릴 수도 있습니다.

 

 

1.5. 거꾸로 출력하기

<kotlin />
for(i in 5 downTo 0) { println(i) } // 출력 >> 5 4 3 2 1 0 ============================================================ for(i in 5 downTo 0 step 2) { // 2를 간격으로 5부터 0 까지 감소 println(i) } // 출력 >> 5 3 1

 

downTo를 사용해 감소하는 형태의 반복문을 만들 수도 있습니다.

 

 

2. while

<kotlin />
var n = 0 while(n < 5) { println(n) n++ } // 출력 >> 0 1 2 3 4 =========================== while(true) { println("Hello") } >> Hello Hello Hello Hello Hello . . . (무한 반복)

 

while문은 c, java와 사용법이 동일합니다.

 

while문은 소괄호 안의 조건문이 참인 동안 반복하는 반복문입니다.

 

첫 번째 프로그램의 경우, n이 증가하면서, n이 5가 되는 순간

while의 조건(n<5)를 만족시키지 못하기 때문에 반복을 중단합니다.

 

두 번째 프로그램의 경우, 반복문을 탈출할 수 있는 방법이 없기 때문에

프로그램을 임의로 종료시키지 않는 한 무한으로 반복됩니다.

 

3. do - while

<kotlin />
var a = 0 do { println(a) } while(a > 0) // 출력 >> 0 ================================= do { println("heeeeello") } while(false) // 출력 >> heeeeello

 

do - while문은 while의 조건문이 거짓이여도,

무조건 한 번은 실행되는 while문 입니다.

 

 

4. repeat

<kotlin />
repeat(5) { it -> println(it) } // 출력 >> 0 1 2 3 4

 

repeat(n)은 n번 반복하는 반복문입니다.

매우 직관적이고, 짧고, 심플합니다.

저는 굉장히 애용중인 녀석입니다.

 

 

5. forEach

<kotlin />
val arr = arrayOf(1,3,6,1,23) arr.forEach { it -> println(it) } // 출력 >> 1 3 6 1 23

 

forEach는 함수형 프로그래밍의 일종입니다.

arr내 원소를 순차적으로 갖고 반복하는 형태입니다.

 

추후에 코틀린 람다식/함수형 프로그래밍 파트 혹은

코틀린 컬렉션 프레임워크 파트에서 한 번 더 다루게 될 것 같네요.

profile

Uknow's Lab.

@유노 Uknow

인생은 Byte와 Double 사이 Char다. 아무말이나 해봤습니다.