许多重复语法错误没有可见错误

时间:2015-06-03 21:51:04

标签: ruby

puts("This program is intended to tell you your letter grade, and if you passed or")
puts("failed.")
puts
print("What was your grade for the class you are testing for?: ")
grade = Integer(gets)
puts
print("What was the name of the class?: ")
class = gets
class = class.chomp
puts
if grade >= 90
    puts
    puts("You passed!")
    puts
    puts("Your letter grade for " + class + " is an A!")
elsif grade >= 80
    puts
    puts("You Passed")
    puts
    puts("Your letter grade for " + class + " is a B.")
elsif grade >= 70
    puts
    puts("You Passed")
    puts
    puts("Your letter grade for " + class + " is a C.")
elsif grade >= 60
    puts
    puts("You Failed...")
    puts
    puts("Your letter grade for " + class + " is a D.")
elsif grade < 60
    puts
    puts("You Failed...")
    puts
    puts("Your letter grade for " + class + " is a F...")
else
    puts
    puts("It is not possible to get a negative grade. Please try again.")   
end

这是为了吸引用户输入,告诉用户他们是否通过或失败,以及他们的字母等级。

错误主要是“语法错误,意外的一元+”,“=”或“)”

2 个答案:

答案 0 :(得分:1)

首先,将class变量的名称更改为与class_name稍微不同的内容,以防止以后发生奇怪的事情,您希望将其用于更多内容。

一元表达式只能使用one operand.“一元错误”很可能是由于您使用puts符号向+函数提供字符串参数的方式单独的操作数,尝试将字符串保存在变量中,然后将其作为参数传递给puts。

示例:

grade_a_announcement = "Your letter grade for " + class + " is an A!" puts(grade_a_announcement)

此外,作为您必须在多个场合检查变量的程序的建议,使用case代替所有if的{​​{3}}

答案 1 :(得分:0)

&#34;一元运算符&#34;正如@Dimovict所说,错误是因为您编写puts电话的方式。但是,获得所需效果的更惯用的方法是使用字符串插值:

puts("Your letter grade for #{class} is an A!")

这会在class位于字符串中的#{class}处插入,并应删除您所获得的错误(除非您的代码中有更多内容未显示)。< / p>