CS/Kotlin

[Kotlin 문법] 5. loop - range, for, while

졔졔311 2024. 6. 7. 13:51
728x90
반응형

kotlin에서 사용하는 loop을 위한 방식으로는 for과 while이 있다.

c,c++,java와 같은 언어들과 거의 유사한 방식이다.

for([조건]){
	// expression
}
while([조건]){
	// expression
}
do{
	// expression
} while([조건])

이렇게 do while 문까지 그대로 사용 가능하다.

 

다만, 조건을 쓰는 방식에 있어 약간의 차이점이 존재한다.

특히, for문에서 range라는 개념이 들어간다.

그냥 일반적인 조건(예, a < 3)을 써도 문제는 없지만, range 개념을 도입하면 c,c++,java보다 간편하게 표기할 수 있다.

python이 익숙하다면 더 쉬울 것 같다!

 

range는 범위를 표현하는 방법이다.

1. ..

여기에는 ".." operator를 사용한다.

예를 들어, "1..4"는 1,2,3,4를 의미한다. 즉, 'from 1 to 4'이다.

2. ..<

"1..<4"라고 표현하면 1,2,3을 의미한다. '1부터 4 전까지'인 것이다.

3. downTo

"4 downTo 1"이라고 하면 4,3,2,1로 역순 표현도 가능하다.

4. step

연속된 숫자가 아니라 일정 간격(step)을 두고 표현하고 싶을 경우, step을 사용한다.

예를 들어, "1..5 step 2"이면 1, 1+2 = 3, 1+2+2 = 5가 된다.

앞에는 ..뿐만 아니라 다른 것도 올 수 있다.

"5 downTo 1 step 2"는 5, 5-2 = 3, 5-2-2 = 1을 의미한다.

 

range는 단순히 숫자만 가능한게 아니라 Char type에 대해서도 적용된다.

'a'..'d' 는 'a', 'b', 'c', 'd'를 의미하고, 다른 operator들도 동일하게 적용할 수 있다. (ascii code를 떠올리면 쉬울듯!)

 

이 range operator들을 loop에 적용하면,

for(number in 1..5){
    print(number)	// 12345 출력
}

이런 식으로 조건문 안에서 활용 가능하다.

이렇게 사용할 땐 위에서 사용한 것처럼 "in" operator를 사용하면 된다.

number가 1부터 5까지 차례대로 가리키도록 하는 것이다.

 

Collection에 대해서도 이렇게 반복문을 적용할 수 있는데,

val list = listOf("a", "b", "c")

for (cur in list) {
    println("cur is $cur")
}

이렇게 in을 활용해서 나타낼 수 있고, cur이라는 변수가 list의 0번 index부터 차례대로 가리키게 된다.

따라서 이 결과는

"

cur is a

cur is b

cur is c

"

라고 출력된다.

728x90
반응형