On 7/18/07, John Browning <listguy / poplar.com> wrote: > > On 18 Jul 2007, at 12:05, Matthew Borgeson wrote: > > > Hey All- > > > > I just started attempting to program in Ruby a month ago, but have > > reached > > an impasse. > > > > I am writing a dosing program and am trying to do something very > > simple: > > Have a user enter either m for a male or f for a female so that > > info can be > > taken to the next equation to be used for something else. > > > > I originally wrote it as follows: > > > > #Introduction > > > > puts 'Hello. Welcome to the Aminoglycoside Dosing Calculator.' > > # Determines the patient dosing gender > > > > puts 'What gender is your patient? Please enter m or f' > > ptSexS = gets.chomp.downcase > > if ptSexS == 'f' > > doseSexS = 'female' > > elsif ptSexS == 'm' > > doseSexS = 'male' > > end > > puts 'Your patient is a ' + doseSexS > > > > > > The problem here is I have written all of the mathematical > > operations I need > > in blocks like this, but I dont know how to make them accomodate > > for invalid > > answers. > > For instance, if the user enters an m or an f above, I have the > > doseSexS > > determined for the next part of the program. If the user enters > > something > > else, I want it to ay "please try again' and start over.. > > > > I have tried while loops but cant get it to work as well as making > > it into a > > method. Is there a different way to do this that my lack of > > experience is > > preventingme from seeing/ Is iteration over a an array something worth > > following? I apologize for such a basic question, but the > > PickAxe,the book > > by Chris Pine, and multiple web sites are failing me and I am > > turnig here as > > a last resort... > > > > Thanks in advance for any help > > > > Matthew F Borgeson > > > > > > > > > > You might try looking at using either raise ... rescue or throw ... > catch to deal with errors. Discussion on p 360 of pickaxe and elsewhere. > > in your code something like > > if f > elsif m > else > raise > end > > with rescue elsewhere to do what you want with the error. > > Hope this helps. > > allbests, > > personally I think this is a case 4 case ;) case sex when /f(?:emale)?/i s = 'female' when /m(?:ale)?/i s="male" else errorhandling just my micromoney R. > > -- I always knew that one day Smalltalk would replace Java. I just didn't know it would be called Ruby -- Kent Beck