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

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

这是我所做的简化版本。

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的正常行为。 先谢谢您的帮助。

问题出在Android Studio调试器上。 when()块在调试时被跳过,但实际上被执行了。

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

在你添加一个else语句之后

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

当expression式需要别的时候Kotlin