Using Loops for prompts with If/Else/Esif
        Posted  
        
            by 
                Dante
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Dante
        
        
        
        Published on 2012-04-03T23:23:17Z
        Indexed on 
            2012/04/03
            23:29 UTC
        
        
        Read the original article
        Hit count: 303
        
ruby
I started with:
    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
That worked fine, but if the user entered a number less than 10 the program ended. I want the user to be prompted to try again until they enter a number greater than 10. Am I supposed to do that with a loop?
Here's what I took a swing at, but clearly it's wrong:
    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
© Stack Overflow or respective owner