gets will return a string with the carriage return included.... that is 
menuChoiceString will be equal to "1\n" instead of simply "1" and that is why 
the comparison fails.

instead do this

if menuChoiceString.chop == "1" then

else

end


Horacio


木曜日 22 6月 2006 18:30、Paul Teale さんは書きました:
> Hi,
> I am new to Ruby and have a newbie Ruby question that i couldn't find
> the answer to in the FAQ.
> If this is the wrong forum to post newbie questions please accept my
> apologies and direct me to a more suitable forum where i can ask newbie
> Ruby questions. Thanks.
>
> First i display a console based menu with puts statements and then wait
> for input with the gets method like this..
>
> menuChoiceString = gets
>
> Then i have the following code to act based on what menu option was
> chosen.
>
> if menuChoiceString == "1" then
>  puts "You pressed 1"
> else
>   puts "You pressed 2"
> end
>
> When i use this and enter 1 it goes to the second option.
> It looks fairly simple syntax so i'm not sure why the if statement is
> failing.
> Can anyone help me understand why this would fail?
>
> thanks
>
> Paul