본문 바로가기
언어 공부/Kotlin

[Kotlin] 3. 반복문

by krapoi 2021. 11. 16.
반응형

코틀린 반복문을 배울 때 아 어차피 다른 언어랑 비슷하겠지 하며 배웠는데,

전혀 아니었다.

 

코틀린에서는 조금 신기하게 for문을 작성하던데,

코드로 보여주겠다.

fun main() {
    for(i in 0..12) {
        println(i)
    }
    var a = 0
    var b = 0
    while (a < 5){
        println("a = " + a++)
        println("b = " + ++b)
        println()

    }

    for(j in 0..12 step 3){ // 0 부터 12 까지 3씩 증가, for(int j = 0; j <= 12; j+=3)
        println(j)
    }
    println()
    for(k in 9 downTo 0) // 9에서 0까지 감소
        println(k)
    println()
    for (c in 'a'..'z')
        print(c + " , ")

}

일단 for문을 돌릴때 변수명 in 조건이 들어간다.

in은 파이썬에서 봤으니 그렇다 할 수 있는데 조건 부분에서..으로 돌리길래 선뜻 이해되지 않았다.

맨 처음 for문을 보면 0.. 12 부분이 있는데 이게 0부터 12까지 돌린다는 뜻이다.

맨 처음 for문을 자바로 풀어보면

for(int i = 0; i < 12; i++) 정도가 되지 않을까 싶다.

 

또한 값의 증가를 바꿀 때 step이란 것을 쓰는데 2번째 for문에서 볼 수 있다.

2번째 for문도 자바로 풀어보면

for(int j = 0; j < 12; j += 3) 정도가 될 거 같다.

음, 벌써부터 헷갈리는 것 같다.

 

그래도 while은 사용법이 같은 것 같더라.

 

그리고 for문에서 값을 감소시킬 때 downTo라는 것을 사용하는데 3번째 for문에서 볼 수 있다.

이 부분도 자바로 풀어보자면

for(int k = 9; k > 0; k--) 정도이지 않을까.

 

마지막으로 좀 신기했던 건데 문자로 for문을 돌릴 수 있다.

마지막 for문을 보면 'a'..'z' 되어있는 걸 볼 수 있는데,

a부터 z까지 다 돌리겠다는 거다.

당연히 여긴 타입 추론이 있으니 변수 c는 char 타입일 것이고.

이것도 자바로 풀어보면 for(char c = 'a'; c < 'z'; c++)이지 않을까, 아마?

자바에서 문자로 for문을 돌려본 적이 없어 모르겠다.

 

for문에서 신기한 부분이 많았는데,

익숙해지려면 많이 써봐야 할 것 같다.

코틀린으로 코딩 테스트를 풀다 보면 익숙해지지 않을까 싶다.

반응형

'언어 공부 > Kotlin' 카테고리의 다른 글

[Kotlin] 4. 클래스와 생성자(for레이블)  (0) 2021.11.17
[Kotlin] 2. 배열과 형변환  (0) 2021.11.15
[Kotlin] 1. 변수 사용법  (0) 2021.11.14
[Kotlin] 0. 코틀린 배우기 시작  (0) 2021.11.11