Выход за пределы массива
При выполнении данного кода индекс выходит за пределы массива. Как этого избежать? Решаю простую задачу, где нужно если второй элемент больше первого, прировнять его к значению первого, если меньше, оставить неизменным
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])
}
}