我开始时:
puts "Hello there, and what's your favorite number?"
favnum = gets.to_i
puts "Your favorite number is #{favnum}?" " A better favorite number is #{favnum + 1}!"
puts "Now, what's your favorite number greater than 10?"
favnumOverTen = gets.to_i
if favnumOverTen < 10
puts "Hey! I said GREATER than 10! Try again buddy."
else
puts "Your favorite number great than 10 is #{favnumOverTen}?"
puts "A bigger and better number over 10 is #{favnumOverTen * 10}!"
puts "It's literally 10 times better!"
end
工作正常,但如果用户输入的数字小于10,则程序结束。 我希望提示用户再次尝试,直到他们输入大于10的数字。 我应该用循环吗?
这是我采取的方式,但显然是错误的:
puts "Hello there, and what's your favorite number?"
favnum = gets.to_i
puts "Your favorite number is #{favnum}?" " A better favorite number is #{favnum + 1}!"
puts "Now, what's your favorite number greater than 10?"
favnumOverTen = gets.to_i
if favnumOverTen < 10
loop.do
puts "Hey! I said GREATER than 10! Try again buddy."
favnumOverTen = gets.to_i
until favnumOverTen > 10
else
puts "Your favorite number great than 10 is #{favnumOverTen}?"
puts "A bigger and better number over 10 is #{favnumOverTen * 10}!"
puts "It's literally 10 times better!"
end
答案 0 :(得分:4)
这是一种比前两种更短的方式:
puts "Now, what's your favorite number greater than 10?"
until (favnumOverTen = gets.to_i) > 10
puts "Hey! I said GREATER than 10! try again buddy."
end
这是有效的,因为赋值返回赋给变量的值。
答案 1 :(得分:1)
更好的解决方案是获得10个最喜欢的数字,然后开始until
循环检查favnumOverTen > 10
,如下所示:
puts "What is your favorite number greater than 10?"
favnumOverTen = gets.to_i
until favnumOverTen > 10 do
puts "Hey! I said GREATER than 10! Try again buddy."
favnumOverTen = gets.to_i
end
这样,如果初始条目大于10,则永远不会执行until循环(保存if
语句)。
另外,您也知道,使用驼峰情况编写变量名称并不是惯用的Ruby(即favnumOverTen
应为favnum_over_ten
)。