My suggestion would be to add that behavior right when you are getting
the user input.  Add a check at the beggining, and keep it out if the
if statement.

Also, I would change the if/elsif statements to a case statement.  The
case statement is perfect for what you are trying to do.

Dan

On 7/18/06, simonh <simonharrison / fastmail.co.uk> wrote:
> I posted a question a week or so now which I got some great help with.
> Here I am again I'm afraid! What I am now struggling with is how to add
> help. What I want is if the user gets the input wrong three times, I'd
> like to print to print
>
> > Press 'h' for help
> > h
> > You must enter your age as two digits. i.e if you are twenty five, type 25.
>
>
> here is the original method:
> -----------------------------------------------
> def check_age
>   print "Please enter your age: "
>   age = gets.chomp
>   target = 18..30
>   valid = /^\d{2}/
>
>   if valid.match(age)
>     if target === age.to_i
>       puts 'Have a nice holiday!'
>     elsif age.to_i  < 18
>       puts 'Sorry, too young.'
>     elsif age.to_i  > 30
>       puts 'Sorry, too old.'
>     end
>   else
>     puts 'Incorrect input.'
>     puts
>     check_age     # Try again
>   end
> end
>
> check_age
> gets
> ---------------------------------------------------
>
> Should I create a class and add a 'show_help' method (putting the
> 'check_age' method in there as well)? If so, how/where do I call that
> method? The method in the above code calls itself. I am a complete
> programming newbie by the way.
>
> Maybe we could expand this program to help other new programmers like
> myself? The jukebox example in Pickaxe2 seems to fizzle out.
>
>
>