到目前为止我能够做到这一切,除此之外,我不知道为什么,但我在最后一行Unresolved reference:x
收到此错误print(x)
。
fun main(args:Array<String>) {
var liste = IntRange(3,19)
var bolundu = 1
for (x in liste)
for (y in IntRange(2,x))
if (x % y != 0)
bolundu = 0
if (bolundu == 1)
print(x)
}
我不明白这是什么问题,为什么它与{for循环中的x
不匹配?
答案 0 :(得分:3)
之所以会发生这种情况是因为如果要在循环中评估多个语句,则必须在Kotlin中指定括号。
实际上,您的代码与此代码完全相同:
fun main(args:Array<String>) {
var liste = IntRange(3,19)
var bolundu = 1
for (x in liste) {
for (y in IntRange(2,x)) {
if (x % y != 0) {
bolundu = 0
}
}
}
if (bolundu == 1) {
print(x)
}
}
相反,你需要这样的东西:
fun main(args:Array<String>) {
var liste = IntRange(3,19)
var bolundu = 1
for (x in liste) {
for (y in IntRange(2,x)) {
if (x % y != 0)
bolundu = 0
}
if (bolundu == 1)
print(x)
}
}