测试条件语句:if … then
上面的税率值计算代码的问题是允许负的合计值和税率,这种情况在政府看来可能是不利的。因此,我需要测试负数,如果出现负数将其置为 0 。这是我的新版代码:
5taxcalculator.rb
taxrate = 0.175
print "Enter price (ex tax): "
s = gets
subtotal = s.to_f
if (subtotal < 0.0) then
subtotal = 0.0
end
tax = subtotal * taxrate
puts "Tax on $#{subtotal} is $#{tax}, so grand total is $#{subtotal+tax}"
Ruby 中的 if
测试语句与其他编程语言中的 if
相似。注意,这里的括号也是可选的,then
也一样。但是,你如果在测试条件之后没有换行符的情况下继续写代码,那么 then
不能省略:
if (subtotal < 0.0) then subtotal = 0.0 end
将所有代码写在同一行不会增加代码的清晰度,我会避免这么写。我长期习惯于 Pascal 书写风格所以导致我经常在 if
条件之后添加 then
,然而这真的是不需要的,你可以将其看成我的一个癖好。if
代码块末尾的 end
关键字不是可选的,忘记添加它的话你的代码将不会运行。