val
无法重新分配编译时错误 var
变量。我们不能改变数组值吗?
错误
Array.kt:11:3: error: val cannot be reassigned
代码:
import java.util.Scanner
fun main(args: Array< String>){
println("Enter the no")
val scanner = Scanner(System.`in`)
var nos = Array<Int>(5){0}
var i : Int = 1
for (i in 1..3){
nos[i] = scanner.nextInt()
i = i+1
}
println("Given values $nos")
}
最佳答案
for (i in 1..3) ...
语句重新定义了 i
的主体范围,它成为一个 val
code> (它实际上是一个单独的变量,遮蔽了循环外部声明的 i
)。
您可以通过对这些变量使用不同的名称来修复代码,或者根据您的情况,只需删除 var i: Int = 1
和 i = i + 1
>:
val scanner = Scanner(System.`in`)
var nos = Array<Int>(5) { 0 }
for (i in 1..3) {
nos[i] = scanner.nextInt()
}
println("Given values $nos")
UPD(回答评论):您可以通过使用函数 downTo
和 构建级数,以相反方向迭代或使用非单位步骤。步骤
,均描述here in the reference .
关于kotlin - 我收到 val 无法重新分配编译时错误。但我只将变量声明为 `var`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49008821/