> $stdout.sync = true (due to weird windows buffer stuff) > input = '' > while input != 'BYE' > input = gets.chomp > if input == input.upcase > puts 'NO, NOT SINCE 1938!' > elsif input == input.downcase > puts 'HUH?! SPEAK UP, SONNY!' > end > end > > What happens is it does exit on BYE but issues the elsif before > ending. You could initialise input before you go into the while loop, and then update it at the end of each iteration: input = gets.chomp while input != 'BYE' if input == input.upcase puts 'NO, NOT SINCE 1938!' elsif input == input.downcase puts 'HUH?! SPEAK UP, SONNY!' end input = gets.chomp end See? James