使用Dart编写乘法表程序输出结果与预期不符如何解决
问题原因
- 语法错误:Dart中
main作为程序入口函数,声明时必须携带括号,你写的void main{缺少函数声明必需的(),会直接触发编译报错。 - 逻辑错误1:打印乘法结果的位置直接调用了原始变量
num,没有计算两个数的乘积,所以每次输出的结果都固定为10,和预期的乘积结果不符。 - 逻辑错误2:仅编写了单层循环,只能输出固定数值(代码里写的是10)的乘法行,无法输出完整的乘法表。
解决方法
如果你只需要输出10对应的乘法行,修正函数语法和乘积计算逻辑即可:
void main() { int num = 10; for(var i = 1; i <= 10; ++i) { print('$num * $i = ${num * i}'); } }
如果你需要输出完整的九九乘法表,需要嵌套两层循环,外层控制被乘数,内层控制乘数:
void main() { // 九九乘法表的被乘数范围为1~9 for(var i = 1; i <= 9; ++i) { // 乘数范围为1~当前被乘数,避免输出重复的乘法项 for(var j = 1; j <= i; ++j) { // 用不换行的打印逻辑,同一行输出多个式子,加制表符对齐 stdout.write('$j * $i = ${i * j}\t'); } // 每一行所有式子输出完成后换行 print(''); } }
内容的提问来源于stack exchange,提问作者Mirza
相关产品推荐
相关产品推荐

