在kotlin中的for循环中使用when()。不执行when语句下面的行

时间:2018-02-06 15:11:29

标签: android kotlin kotlin-android-extensions

我正在Android项目中使用Kotlin进行编码。我在for()循环中使用了when()语句。在while()语句下面有一些行需要在循环的每次迭代中执行,但是被跳过并且控制流回到循环的下一次迭代。

这是我所做的简化版。

    for (i : Int in 0..10)
    {
        val data = Data()

        when(i)
        {
            0 -> data.att1 = "sample0"
            1 -> data.att1 = "sample1"
            2 -> data.att1 = "sample2"
            ..
            ..
        }

        dataArray.add(i, data) // LINE NOT EXECUTED
    }

我对Kotlin很新,所以我不确定这是否是Kotlin的正常行为。在此先感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

问题在于Android Studio Debugger。在调试时跳过了()块时的行,但实际上已经执行了。

放置在那里的中断品脱也显示错误,指出“该行中没有可执行代码”

答案 1 :(得分:-1)

在你添加else语句之后

   When(I){

    0-> ...
    1-> ....
    } else {
    Log.i(TAG, “error”)
    }

表达式需要其他时的Kotlin