2015-11-05 35 views
0

我正在寻找正确的方式在Ruby中执行此操作。我想创建一个if/else语句,它将保持循环,直到找到正确的答案。例如:RUBY:If/Else语句创建循环

puts "Guess a number",prompt 
$stdin.gets.chomp = x 
if x == 5 
    puts "correct 
else 
    # loop back to beginning and start over 
end 

回答

4

您可以使用while语句循环,如果猜数,再破,就像这样:

while true 
    puts "Guess a number:" 
    if gets.chomp.to_i == 5 
    puts "correct" 
    break 
    end 
    puts "guessed wrong, please try again!" 
end 

或使用until声明:

puts "Guess a number:" 
until gets.chomp.to_i == 5 do 
    puts "guessed wrong, please try again!" 
end 

puts "correct" 

为@izaban说,loop...do也可以工作:

loop do 
    puts "Guess a number:" 
    if gets.chomp.to_i == 5 
    puts "correct" 
    break 
    end 
    puts "guessed wrong, please try again!" 
end 
+0

你也可以使用'循环do',而不是'而TRUE' – izaban

+0

@izaban是的,你说得对,'循环.... do'也可以工作。 – pangpang

0

这是一个没有用break了解决方案:

guess = 0 
first_run_through = true 

until guess == 5 
    puts 'guessed wrong, please try again!' unless first_run_through 
    first_run_through = false 
    puts 'Guess a number' 
    guess = gets.chomp.to_i 
end 

puts 'correct'