Forum: Ruby Re: "Goto line" function?

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
1495ebcf72b18bea9e304b33bcc7c9aa?d=identicon&s=25 Joseph Schiller (Guest)
on 2007-03-10 01:21
(Received via mailing list)

Fortunately the "goto" has been deprecated. It always results in
spaghetti code.  Check out 'case' control structure instead.  You may
want to think through the program flow so that you have each possibility
and a default case for unanticipated situation. You will need to wrap
your code inside the case structure. It's mo' better solution  than
coding ad hoc.

i = 3
case i
when 1, 2..5
print "1..5\n"
when 6..10
print "6..10\n"



----- Original Message ----
From: Paul van Delst <>
To: ruby-talk ML <>
Sent: Friday, March 9, 2007 6:40:05 PM
Subject: Re: "Goto line" function?

Helgitomas Gislason wrote:
> 6.  puts ' '
> 17.     (the program continues)
> 18.
> 19. BUT if answer == 'no'
> 20.       goto.line.7 (And skip the rules, just restart it and begin
> from line 7.)
> What is the command? I know it's not "goto.line.X" but what is it? "back
> to line.X"? "goto.lineX"? What is the command?

Addressing just the loop/goto issue, how about summat like:

#!/usr/bin/env ruby
until done
   puts ' '
   puts ' '
   puts '****************************'
   puts '** (Rules of the program) **'
   puts '****************************'
   puts ' '
   puts 'Ohh, hello there! What are you named many names?'
   names = gets.chomp
   if names == '2'
     puts ' '
     puts 'Are you named two names?'
     puts ' '
     answer = gets.chomp
     done = true if answer == 'yes'
#This is where "the program continues"
puts 'the end'

This gives me the output:

lnx:scratch : blah.rb

** (Rules of the program) **

Ohh, hello there! What are you named many names?

Are you named two names?


** (Rules of the program) **

Ohh, hello there! What are you named many names?

Are you named two names?

the end



Paul van Delst             Ride lots.
CIMSS @ NOAA/NCEP/EMC               Eddy Merckx
This topic is locked and can not be replied to.