'else if'块内的减法运算的语法错误?

时间:2012-09-10 03:59:34

标签: ruby syntax-error if-statement

我收到以下错误:

/calcTax.rb:9: syntax error, unexpected $undefined
  grandtotal = $#{subtotal - tax}

从这段代码:

print('What amount would you like to calculate tax for?  $')
subtotal = gets.to_i
taxrate = 0.078
tax = subtotal * taxrate
if (tax > 0.0)
  grandtotal = $#{subtotal + tax}
else if (tax < 0.0)
  grandtotal = $#{subtotal - tax}
puts "Tax on $#{subtotal} is $#{tax}, so the grandtotal is $#{grandtotal}."

我想知道我是否需要以不同的方式将subtotal设置为某个值,或者我可以采取哪些措施来修复我的程序?

我在第10行也遇到unexpected $end错误。

1 个答案:

答案 0 :(得分:1)

这里的语法有些问题。

首先,在将变量插入带引号的字符串时,只需要$#{blah}语法(并且只有效!)。当您只是执行计算时,您可以简单地说出:

grandtotal = subtotal + tax

您还需要在then行的末尾添加if,将else if更改为elsif,然后添加end第二个grandtotal行。完成这项工作后,您应该:

print('What amount would you like to calculate tax for?  $')
subtotal = gets.to_i
taxrate = 0.078
tax = subtotal * taxrate
if tax > 0.0 then
  grandtotal = subtotal + tax
elsif tax < 0.0 then
  grandtotal = subtotal - tax
end
puts "Tax on $#{subtotal} is $#{tax}, so the grandtotal is $#{grandtotal}."

这似乎有用。