From: Joel VanderWerf Date: 2011-05-08T07:56:47+09:00 Subject: Re: Help with while condition OR condition On 05/07/2011 03:37 PM, Bill W. wrote: > Hi everyone, > > This is my first post, so I hope I don't sound too inexperienced.. > > I'm trying to teach myself Ruby, and have run into an issue with a while > statement that will break if an input is "exit" or "quit". > As of right now, it works if exit is input, but not quit > > I know I am completely misusing the entire thing, but here is what I > came up with: > > EXIT = "exit" #need constants since Ruby gets pissed at string literals > QUIT = "quit" #in a comparison > > print "Input: " > input = gets > while input.chomp.downcase != (EXIT || QUIT) #only works for exit It can help to take apart expressions in irb (interactive ruby): $ irb >> EXIT = "exit" => "exit" >> QUIT = "quit" => "quit" >> EXIT || QUIT => "exit" >> "quit" == (EXIT || QUIT) => false > #Do something > > print "Input: " #pick up the next input and check it > input = gets > end > > I know that Ruby has a lot of shortcuts, but if you post any please > explain how they work (or provide a link to a good explanation. Something to tinker with: print "Input: " while input = gets case s = input.chomp.downcase when "exit", "quit" puts "You wanted to #{s} this mighty fine program?" break else puts "Why do you say '#{s}'?" print "Input: " end end puts "Done."