Kotlin

[android : kotlin] 코틀린 foreach 반복문 사용방법 및 예제

■for문 선언방법 

코틀린에서는 in 키워드를 사용한다. 자바언어에서 처럼 for (int i = 1; i <= 5; i++) { … } 사용하게되면 오류가 발생된다. 코틀린에서는 자바와 같은 세미콜론(;)표현식을 사용하지 않는다. 

for ( 요소 변수 in 컬렉션 혹은 범위) {
	반복할 본문
}

 

 

 

fun main() {
	for (x in 1..3) { // 코틀린의 in과 범위 지정을 활용한 루프
		println(x) // 본문
	}
	
    // 한줄에 표현하는 경우	
    for (x in 1..3) println(x) 
    
    
    //1부터 10가지 더하기
	var sum = 0
	for (x in 1..10) sum += x
	println("sum: $sum")    

}

[실행결과]

1
2
3
1
2
3
sum: 55

 

■하행 반복 – downTo 키워드를 사용한다.
5, 4, 3, 2, 1

for (i in 5..1) print(i) // 잘못된 사용! 아무것도 출력되지 않는다 
for (i in 5 downTo 1) print(i) 

 

■필요한 단계 증가 – step
1, 3, 5

for (i in 1..5 step 2) print(i) 

 

■혼합 사용
5, 3, 1
하행, 상행 및 다양한 반복 방법

for (i in 5 downTo 1 step 2) print(i)

■홀수와 짝수의 합 구하기

fun main() {
	var total: Int = 0
	for (num in 1..100 step 2) total += num
	println("Odd total: $total")

	for (num in 0..99 step 2) total += num
	println("Even total: $total")
}

[출력결과]

Odd total: 2500
Even total: 4950

■for문을 사용한 삼각형 출력방법

fun main() {
	//print("Enter the lines: ")
	val n = 5 //readLine()!!.toInt() // 콘솔로부터 입력받음
	for (line in 1..n) {
		for (space in 1..(n - line)) print(" ") // 공백 출력
		for (star in 1..(2 * line - 1)) print("*") // 별표 출력
        //for (start in 1 until 2 * line) print("*") //위 문장과 동일하다.
        
		println() // 개행
	}

}
 

[출력결과]

    *
   ***
  *****
 *******
*********

 

■foreach문 사용법

fun main() {
    val numList = arrayListOf(1,2,3,4,5,6)
     
    //명시적으로 i 변수에 값을 지정하는 방법
    numList.forEach { i -> 
        println("${i}")        
    }
    
    //암묵적인 방법 사용시 it 키워드 변수 사용
    numList.forEach{
        println(it)
    }

}

[실행결과]

1
2
3
4
5
6

for문과 다르게 foreach문 사용시 continue문와 break문을 사용할 수 없다.

 

■foreach문에서 break문과 동일한 사용방법

run으로 감싸준 후 foreach문 실행해야하며, break를 걸고 싶을 경우 return@run을 사용해야한다.

fun main() {
    val numList = arrayListOf(1,2,3,4,5,6)

    //암묵적인 방법 사용시 it 키워드 변수 사용
    run {
        numList.forEach{
            println(it)
            if(it == 3) return@run
        }
	}
}

[실행결과]

1
2
3

 

■foreach문에서 continue문과 동일한 사용방법 : return@forEach를 사용한다.

fun main() {
    val numList = arrayListOf(1,2,3,4,5,6)
    
    //암묵적인 방법 사용시 it 키워드 변수 사용    
    numList.forEach{
        println(it)
        if(it == 3) return@forEach 
    }
	
}

[실행결과]

1
2
3
4
5
6

 

[REFERENCE]

Do it! 코틀린 프로그래밍: 04-2 반복문

 

Leave a Reply

error: Content is protected !!