From: Rick Barrett Date: 2009-11-04T15:50:20+09:00 Subject: Why do I keep getting "nil"? I had a homework assignment where I had to create a number guessing game using custom methods. I got it to work...but after some lines it'll put "nil" on the next line and continue with the program. ex. after an input Please enter a number. 4 nil Too low. Try again. Please enter a number. 7 nil Too low. Try again. or after a generated line You guessed the secret number in X tries! nil Why is it saying "nil" everywhere and how do I stop it? My code is below if that helps... # Methods ###################### def get_user_name() puts "What is your name?" name = gets().chomp().capitalize() end def num_eval(guess, number) if (guess > 100) puts "That's more than 100! Pick a number between 1 and 100!" elsif (guess < 1) puts "That's less than 1! Pick a number between 1 and 100!" elsif (guess > number) puts "Too high! Try again!" elsif (guess < number) puts "Too low! Try again!" end end def get_user_guess(number) guess = 0 num_guess = 0 while (guess != number) do puts "Please enter a number." guess = gets().chomp().to_i() puts num_eval(guess, number) num_guess = num_guess + 1 end puts "Congrats you won!" puts "You guessed the secret number in " + num_guess.to_s() + " tries!" end # Variables #################### play_game = "yes" magic_number = 0 num_guesses = 0 num_round = 1 guess = 0 puts "Welcome to the guessing game!\n" name = get_user_name puts "Hi, " + name + "!" puts "You job is to guess the number between 1 and 100" puts "I will tell you if your guess is correct, too low or too high." while (play_game.downcase() == "yes") do puts "Time for Round " + num_round.to_s() + "!" magic_number = rand(100) + 1 puts magic_number puts get_user_guess(magic_number) puts "Would you like to play again?" play_game = gets().chomp() num_round = num_round + 1 end puts "\nThank you for playing the Ruby Guessing Game, " + name + "! Good-bye!" -- Posted via http://www.ruby-forum.com/.