【发布时间】:2017-05-15 18:09:42
【问题描述】:
我需要循环方面的帮助。
我正在尝试获取用户的输入并确定酒店计划假期的成本。
我在循环输入时遇到问题,因此如果用户没有选择任何击键(“A”、“a”、“B”、“b”、“C”,用户可以选择另一家酒店并结束程序"、"c"、"D" 或 "d"),然后计算酒店的总成本。
到目前为止,我想出了这个:
puts choice = gets.chomp.downcase
puts "For how many nights?"
num=gets.chomp.to_i
puts "Okay...any other hotels?"
puts choice = gets.chomp.downcase
#Hotel Prices
#Hotel A
if (choice== "a" or choice=="A")
cost_2= (num/3)*500 + (num%3)*200
end
#Hotel B
if (choice=="b" or choice=="B")
cost_3= num*250
end
#Hotel C
if (choice=="c" or choice=="C")
cost_4 = (num/3)*700 + (num%3)*300
end
#Hotel D
if (choice== "d" or choice=="D")
cost_5= num*500
end
【问题讨论】:
-
看看
Kernel#loop。 -
"How To s The Smart Way" 对你来说是个好读物。
-
不要使用指向图像的链接来获取对问题很重要的信息。相反,将其复制/粘贴到问题中并适当地格式化。链接腐烂然后断开,如果链接中的信息是必不可少的,那么您的问题对其他人来说将变得毫无价值。请记住,您的问题是帮助其他人解决相同问题的文章。
-
正如@sagarpandya82 所建议的,正常的方式是
loop do; ..; break if <some condition)>;...; end。您可以使用(例如)while true;..;end或while 1;...; end,但首选loop。在某些情况下,您可能更喜欢while(<some condition>);..;end或until(<some condition);..;end。loop的一个优点是,当循环包含一个尝试枚举超出其末尾的枚举器,导致枚举器引发StopInteration异常时,loop通过跳出循环来处理异常。见Kernel#loop。
标签: ruby loops if-statement while-loop