Kotlin未解决的参考问题

我能够做到这一切除了这一点,不知道为什么,但我得到了这个错误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

发生这种情况是因为如果在循环中有多个语句要评估,则必须在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) } }