Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 尝试使用两个变量和它们之间的文本打印语句以创建数学表_Ruby_Variables - Fatal编程技术网

Ruby 尝试使用两个变量和它们之间的文本打印语句以创建数学表

Ruby 尝试使用两个变量和它们之间的文本打印语句以创建数学表,ruby,variables,Ruby,Variables,我试图通过将用户输入值乘以1-12来制作一个小小的数学计算器 我希望我的结果以这种格式打印:“3x3=9”、“3x4=12”等等。 我觉得我的循环应该正常工作。但是我不理解打印结果的print语句的语法。我使用一种用于调用变量并在字符串后面附加文本的讲师格式构建了打印语句 我无法让数学函数处理用户输入,但我最终发现用户输入有一个新行字符,并被视为字符串而不是整数。因此,我做了一些更改,包括chomp函数,并将用户的输入转换为整数,用于循环中的数学计算。 我接收到终端的以下错误,我不太明白

我试图通过将用户输入值乘以1-12来制作一个小小的数学计算器

我希望我的结果以这种格式打印:“3x3=9”、“3x4=12”等等。

我觉得我的循环应该正常工作。但是我不理解打印结果的print语句的语法。我使用一种用于调用变量并在字符串后面附加文本的讲师格式构建了打印语句

我无法让数学函数处理用户输入,但我最终发现用户输入有一个新行字符,并被视为字符串而不是整数。因此,我做了一些更改,包括chomp函数,并将用户的输入转换为整数,用于循环中的数学计算。

我接收到终端的以下错误,我不太明白这一组要求我做什么(我也有意外的错误,但到目前为止我已经删除了这些错误)

我的指导老师在某些部分后加逗号,我猜是为了终止该行的特定部分以执行新功能并将其添加到字符串中

以下是我目前的代码:

#!usr/bin/ruby
放入“+---------------------------+”
把“便宜的红宝石计算器”放在“跛脚”的横幅上
放入“+---------------------------+”
放置“”
输入“请输入您的数字,以便我可以将其从0-10相乘并给出结果”
firstvar=get#获取用户输入
firstvar=firstvar.chomp#从用户输入中删除换行符
将“您输入的”+firstvar+”。让我们通过廉价的计算器运行它。”#重申此程序的无用性
i=1#将i定义为1
当i<13 do#while循环打印每个迭代时
mult=+firstvar.to_i*i#数学函数设置为mult
print+firstvar+“x”+i.to_s”=“+mult”\n”#通过调用用户var打印字符串,构建2x2语句并循环它
i+=1#i增加1
结束#结束循环

根据错误消息和我提供的示例代码,请让我知道你们的想法。我想了解错误消息的实际含义,同时修复代码,使其在程序中运行。一旦我完成了这一部分,我计划创建一种方法来清理用户输入,让他们重新输入他们的号码,或者在不是号码的情况下退出程序。

firstvar+“x”+i.to_s”=“
to_s
之后缺少连接运算符。不过,Canonical Ruby支持字符串插值。综上所述,在我看来,最好编写一个表达式解析器(或使用现有的解析器)。我建议使用字符串插值,而不是编写
firstvar+“x”+I.to_“=”+mult”\n“
您可以编写
“{firstvar}x{I}={mult}\n
。它使代码更易于阅读,从而更容易避免语法错误。@Adrian感谢您的帮助。我们在课堂上还没有讨论过字符串插值,但这确实使它更容易阅读和理解。我假设#{}是一个字符串插值运算符,用于调用指定变量中包含的值。我觉得这应该是在Ruby中学习的第一件事。
calc.rb:19: syntax error, unexpected tSTRING_BEG, expecting keyword_end
...t + firstvar + " x " + i.to_s "= " + mult "\n" #print the st...
                             ^
calc.rb:19: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '('
... + " x " + i.to_s "= " + mult "\n" #print the string by call...
#!usr/bin/ruby

puts "+-------------------------+"
puts "|  Cheap Ruby Calculator  |" #Lame Banner
puts "+-------------------------+" 

puts " "
puts "Please enter your number so that I can multiply it from 0-10 and give you the results"
firstvar = gets #get user input
firstvar = firstvar.chomp #remove newline char from user input

puts "You entered " + firstvar + ". Let's run that through the cheap calculator." #reiterate the uselessness of this prog

i = 1 #define i to 1

while i < 13 do #while loop to print each iteration
  mult = + firstvar.to_i * i #math function set to mult
  print + firstvar + " x " + i.to_s "= " + mult "\n" #print the string by calling user var and build the 2x2 statement and loop it
  i+=1 #increment i by 1
end #end the loop