Ok, I've read through the forum but I haven't got my answer. If a value
in my program is true, I want my program to go back to a line like this:
(Example of the program)
1. puts ' '
2. puts ' '
3. puts '****************************'
4. puts '** (Rules of the program) **'
5. puts '****************************'
6. puts ' '
7. puts 'Ohh, hello there! What are you named many names?'
8.
9. names = gets.chomp
10.
11. if names == '2'
12. puts ' '
13. puts 'Are you named two names?'
14. puts ' '
15. answer = gets.chomp
16. if answer == 'yes'
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?
···
--
Posted via http://www.ruby-forum.com/.
You don't want to do this. This is an old bad practice from BASIC days
that is thankfully almost forgotten.
You want a while loop around lines 7-20.
In other cases there are other workarounds around goto.
If you must goto, there is a hack with call//cc. I needed it once, you
probably won't. Ever.
Aur
Check RubyMentor at http://rubymentor.rubyforge.org/
···
On 3/9/07, Helgitomas Gislason <nitrohelgso@hotmail.com> wrote:
Ok, I've read through the forum but I haven't got my answer. If a value
in my program is true, I want my program to go back to a line like this:
(Example of the program)
1. puts ' '
2. puts ' '
3. puts '****************************'
4. puts '** (Rules of the program) **'
5. puts '****************************'
6. puts ' '
7. puts 'Ohh, hello there! What are you named many names?'
8.
9. names = gets.chomp
10.
11. if names == '2'
12. puts ' '
13. puts 'Are you named two names?'
14. puts ' '
15. answer = gets.chomp
16. if answer == 'yes'
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?
--
Posted via http://www.ruby-forum.com/\.
Helgitomas Gislason wrote:
Ok, I've read through the forum but I haven't got my answer. If a value
in my program is true, I want my program to go back to a line like this:
(Example of the program)
1. puts ' '
2. puts ' '
3. puts '****************************'
4. puts '** (Rules of the program) **'
5. puts '****************************'
6. puts ' '
7. puts 'Ohh, hello there! What are you named many names?'
8.
9. names = gets.chomp
10.
11. if names == '2'
12. puts ' '
13. puts 'Are you named two names?'
14. puts ' '
15. answer = gets.chomp
16. if answer == 'yes'
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
done=false
until done
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'
end
end
#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?
2
Are you named two names?
no
****************************
** (Rules of the program) **
****************************
Ohh, hello there! What are you named many names?
2
Are you named two names?
yes
the end
cheers,
paulv
--
Paul van Delst Ride lots.
CIMSS @ NOAA/NCEP/EMC Eddy Merckx
Less mind-bending is catch/throw, or 'redo' within a block.
If you *really* want to write BASIC programs in Ruby, this was discussed
several years ago in ruby-talk - search the archives
···
On Sat, Mar 10, 2007 at 07:06:25AM +0900, SonOfLilit wrote:
If you must goto, there is a hack with call//cc. I needed it once, you
probably won't. Ever.