Kotlin中如何在for循环内部修改循环计数器变量的值?
问题原因
Kotlin 中 for-in 循环的迭代变量默认是只读的 val 类型,语言层面禁止在循环体内重新赋值,这和 Java 中可修改计数器的普通 for 循环有差异。
解决方案
改用 while 循环手动维护计数器即可,你可以完全控制计数器的变更逻辑:
// 用var声明计数器,支持重新赋值 var i = 0 // 对应原逻辑的 0..tokens.size 闭区间判断,若要遍历tokens元素建议改为 i < tokens.size 避免越界 while (i <= tokens.size) { // 原有业务逻辑 if (memory[pointer] != 0) { i = stack.peek() } // 计数器正常步进 i++ }
如果你的业务逻辑需要在修改计数器后跳过本次的自动步进,只需要在赋值分支中添加 continue,或者自行调整步进规则即可。
内容的提问来源于stack exchange,提问作者Ruthvik
相关产品推荐
相关产品推荐

