[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]