Scala新手求助:编写乘法表函数无输出问题排查
解决Scala乘法表函数无输出的问题
嗨,我来帮你排查这个问题~你的代码里有几个小问题,不仅会导致无输出,甚至可能直接触发编译错误,我一步步给你梳理清楚:
1. 未定义变量的错误
你代码里写的 tab += table 里,table 这个变量根本没定义过!你要实现的是目标数字的乘法表,这里应该用传入的参数 tblnum 乘以循环的当前值 i,也就是 tblnum * i。
2. 循环逻辑与输出位置错误
现在你的 println(tab) 放在了循环外面,就算变量没问题,最后也只会输出一个累加的总和,而不是乘法表的每一行结果。要打印乘法表,应该把打印语句放在循环内部,输出每一行的乘法表达式。
3. 可能未调用函数
就算函数写对了,如果你只定义了函数却没有调用它,Scala 也不会执行任何输出操作,必须主动调用函数才能触发执行。
修正后的完整代码
这里是调整好的可运行版本:
def multab(tblnum: Int): Unit = { // 循环遍历1到10,打印每一行乘法结果 for (i <- 1 to 10) { val result = tblnum * i println(s"$tblnum * $i = $result") } } // 调用函数,传入2来打印2的乘法表 multab(2)
额外说明:
- 加上
: Unit明确函数返回类型(因为这个函数仅做打印,无返回值),Scala 虽能自动推断,但显式声明更清晰易懂; - 去掉了没必要的
tab变量,直接计算每行结果并打印,逻辑更简洁; - 使用 Scala 的字符串插值
s""让输出格式更符合乘法表的直观样式; - 最后一定要调用
multab(2),否则函数只是被定义,不会实际执行。
运行这段代码后,你就能看到2的乘法表逐行输出啦~
内容的提问来源于stack exchange,提问作者RakeshN
相关产品推荐
相关产品推荐

