Kotlin尚未解决参考问题

时间:2017-10-27 18:33:36

标签: intellij-idea 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不匹配?

1 个答案:

答案 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)
    }
}