For Programmer

9. 코틀린 - 반복문(for문) 본문

Programming language/Kotlin

9. 코틀린 - 반복문(for문)

유지광이 2021. 8. 24. 18:22

코틀린에서 for문을 이용하여 반복할 수 있는 방법은 아주 많다. 그중 몇가지만 사용해 보고자 한다.

 

List 선언

val a = mutableListOf<Int>(1,2,3,4,5,6,7,8,9)

 

for 방법 1

//반복하는 방법(1)
    for ( item in a ){
        print(""+item+" ") //1 2 3 4 5 6 7 8 9 출력
    }

-> a의 원소들이 차례대로 item에 들어간다고 생각

 

for 방법 2

//반복하는 방법(2)
    for( (index,item) in a.withIndex()){ //index와 item에 각각 index와 value값 들어감
        println("index: " + index + " item: "+item)
    }
    
    출력
    //index: 0 item: 1
    //index: 1 item: 2
    //index: 2 item: 3
    //index: 3 item: 4
    //index: 4 item: 5
    //index: 5 item: 6
    //index: 6 item: 7
    //index: 7 item: 8
    //index: 8 item: 9

for방법3(람다식이용)

//반복하는 방법(3)
    a.forEach { //it에 a의 원소가 들어감
        print(""+it+" ") //1 2 3 4 5 6 7 8 9
    }

-> 실제로 안드로이드 스튜디오에서 사용해보면 it:Int라는 힌트가 있다. 이는 it라는 변수에 a의 원소가 차례대로 들어감을 의미한다.

 

for방법4(람다식이용)

//반복하는 방법(4)
    a.forEach { item -> //item에 a의 원소가 들어감
        print(""+item+" ") //1 2 3 4 5 6 7 8 9
    }

-> 위의 3과 비슷하다. 직접 변수를 지정할 수 있다.

 

for방법5(람다식이용)

//반복하는 방법(5) 람다식을 이용
    a.forEachIndexed { index, i -> //자동으로 index에는 index값이 i는 value값이 들어감
        println("index: " + index + " item: "+i)
    }

for방법6(until 범위 지정)

 //반복하는 방법(6) until로 범위 지정
    for (i in 0 until a.size){ //0~(a.size-1)까지 반복
        print(""+a[i]+" ") //1 2 3 4 5 6 7 8 9 출력
    }
    println()

-> until 다음에 나오는 숫자는 범위에 포함되지 않는다. 즉 a.size -1 의 인덱스까지 돈다.

 

for방법7 (step추가)

 //반복하는 방법(7) step추가
    for (i in 0 until a.size step 2){ //0,2,4,6,8 로 2step씩 증가
        print(""+a[i]+" ") //1,3,5,7,9 출력
    }

-> step 만큼 건너뛰며 i가 증가한다. 

 

for방법8

//반복하는 방법(8) downTo사용
    for (i in a.size -1 downTo 0){// 8부터 0까지 반복(0 포함)
        print(""+a[i]+" ") //9,8,7,6,5,4,3,2,1 출력
    }

-> until 과 다르게 마지막 숫자 0을 포함한다.

for방법9

//반복하는 방법(9) downTo에 step추가
    for ( i in a.size -1 downTo 0 step 2){//8 6 4 2 0 인덱스 출력
        print(""+a[i]+" ") //9,7,5,3,1 출력
    }

-> a.size -1 부터 2씩 줄어들며 i에 대입된다. 단, 0까지 줄어든다.(0 포함)

for방법10

 //반복하는 방법(10) ..이용
    for ( i in 0..8){ //0부터 8까지 인덱스 출력(8도포함)
        print(""+a[i]+" ") //1,2,3,4,5,6,7,8,9 출력
    }

-> untill 과 다르게 마지막 숫자를 포함한다는 점만 기억하면된다.

Comments