for
fun forAndWhile() {
val students :ArrayList<String> = arrayListOf("Cha", "Lee", "jaehyun")
for(name :String in students){
println("${name}")
}
}
// 결과값
Cha
Lee
jaehyun
fun AndWhile() {
var sum1 :Int = 0
for (i in 1..10) { // 1부터 10까지
sum1 += i
}
println(sum1) // 55
var sum2 :Int = 0
for (i in 1..10 step 2) { // 1부터 2씩 증가해서 10까지
sum2 += i
}
println(sum2) // 25
var sum3 :Int = 0
for (i in 1..10 downTo 1) { // 10부터 차례로 1까지
sum3 += i
}
println(sum3)
}
var sum4 :Int = 0
for (i in 1 until 100) { // 1부터 99까지 (100을 포함하지 않음)
sum4 += i
}
println(sum4)
while
fun forAndWhile() {
var index = 0
while(index < 10){
println("current index : ${index}")
index++
}
}
// 0부터 9까지 출력
withIndex()
fun forAndWhile() {
val students: ArrayList<String> = arrayListOf("Cha", "Lee", "jaehyun")
for ((index, name) in students.withIndex()) {
println("${index+1}번째 학생 : $name")
}
}
// 출력
1번째 학생 : Cha
2번째 학생 : Lee
3번째 학생 : jaehyun
왜냐면 students.withIndex() 를 보면
타입이 Iterable<IndexedValue<String>> 이고, 이건 내부적으로 아래와 같다.
data class IndexedValue<T>(
val index: Int,
val value: T
)
data class이기 때문에 component1(), component2()가 자동 생성되고
for (item in students.withIndex()) {
val index = item.component1()
val name = item.component2()
}
이것과 완전히 동일하다고 한다.
코틀린이 타입을 자동으로 추론하기 때문에 쓰지 않아도 되지만, 원래 타입은 이렇게 된다.
for((index: Int, name :String) in students.withIndex()) {
println("${index+1}번째 학생 : ${name}")
}
'앱 개발 > Kotlin' 카테고리의 다른 글
| [Kotlin] 코틀린 기본 5 (class, 다형성(상속), 생성자) (0) | 2026.02.26 |
|---|---|
| [Kotlin] 코틀린 기본 4 (Nullable, NonNull, 엘비스연산자, !! , let 함수, it) (0) | 2026.02.26 |
| [Kotlin] 코틀린 기본 2 (Array & List , ArrayList) (0) | 2026.02.26 |
| [Kotlin] 코틀린 기본 1 (자료형, string template, 조건식if/when) (0) | 2026.02.25 |
| [Kotlin] 매개변수로 람다함수를 이용할 때 소괄호 ( ) 생략 (0) | 2026.01.15 |