Выход за пределы массива

При выполнении данного кода индекс выходит за пределы массива. Как этого избежать? Решаю простую задачу, где нужно если второй элемент больше первого, прировнять его к значению первого, если меньше, оставить неизменным

fun main(args: Array) {

val n = Array(3) { 0 }
n[0] = 100
n[1] = 110
n[2] = 60

for (i in 0..n.size) {

    if (n[i] <= n[i+1]) {

        n [i+1] = n[i]

    } else {

        n[i]
    }

    println(n[i])

}
}

Получаю ошибку:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 at MainKt.main(Main.kt:9)

Как избавиться от ошибки?


Ответы (1 шт):

Автор решения: EgorKisel
fun main(args: Array<String>) {

    val n = Array(4) { 0 }
    n[0] = 100
    n[1] = 110
    n[2] = 60
    n[3] = 70


    for (i in 0 until n.size) {
        for (j in i + 1 until n.size) {
            if (n[i] <= n[j]) {
                n[j] = n[i]
            }
        }
        println(n[i])
    }
}
→ Ссылка