You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:58:31