Kotlin用for循环生成乘法表出现unresolved reference: i错误如何解决
问题原因
- Kotlin 中
for循环在未显式书写大括号{}的情况下,仅会将循环头后紧接的第一行代码识别为循环体。你编写的代码里,只有var mul = num * i属于for循环的执行内容,println("$num * $i = $mul")实际上是在for循环外部执行的。 - 变量
i的作用域仅限for循环内部,循环外的代码无法访问该变量,因此编译器会抛出unresolved reference: i的错误。另外变量mul的作用域也仅限循环内部,即使i的问题解决,循环外访问mul也会抛出同类未定义错误。
修复方案
给for循环添加大括号{},将乘法计算和打印逻辑都包裹进循环体中,保证两行代码都在i的作用域范围内执行。
修正后的完整代码如下:
import java.util.Scanner fun main(args: Array<String>) { val read = Scanner(System.`in`) println("Enter any number:") var num = read.nextInt() for(i in 1..10) { var mul = num * i println("$num * $i = $mul") } }
内容的提问来源于stack exchange,提问作者Shrutika Jaiswal
相关产品推荐
相关产品推荐

