I am making a program with various commands. One of them is “Exit” which
is supposed to exit the program. Here is my code:
if uinput = “EXIT” then
end
end
The problem is that the ruby compiler thinks that the first “end” is the
end to the If-Then statement, instead of the “end” that ends the
program. How do I work around this?
Sam C. wrote:
–
Posted via http://www.ruby-forum.com/.
if uinput = “EXIT” then
exit
end
That should work. Each ‘end’ is matched with the closest previous
unmatched block opener (‘if’ in this case). It doesn’t have anything to
do with terminating a script. hth
On Jan 22, 2007, at 11:32 PM, Sam C. wrote:
end to the If-Then statement, instead of the “end” that ends the
program. How do I work around this?
I think you are looking for ‘exit’ as the method to call to terminate
a program.
Also you aren’t doing a comparison in your if condition, you are
doing an assignment.
So you want something like:
if uinput == “EXIT” then
exit
else
do something else
end
Gary W.
“Sam C.” [email protected]
дÈëÏûÏ¢ÐÂÎÅ:[email protected]…
–
Posted via http://www.ruby-forum.com/.
It’s not the Pascal£¬program end with an ‘End.’, just use exit.
[email protected] writes:
you are doing an assignment. So you want something like:
if uinput == “EXIT” then
exit
else
do something else
end
Just a small point: you don’t need an ‘else’ clause after an ‘exit’,
since nothing could follow that statement. Hence, you can just do this
if you want, and it will have the same effect:
if uinput == “EXIT” then
exit
end
do something else
I tend to do that with ‘exit’, ‘return’, ‘raise’, ‘throw’, ‘next’,
‘redo’, and ‘break’ statements, to avoid excessive nesting. But that’s
just a stylistic thing.
On Jan 23, 2007, at 04:47, Lloyd Z. wrote:
I tend to do that with ‘exit’, ‘return’, ‘raise’, ‘throw’, ‘next’,
‘redo’, and ‘break’ statements, to avoid excessive nesting. But
that’s
just a stylistic thing.
For that matter, you don’t need “then” unless it’s all on one line:
if uinput == “EXIT” then exit end
exit if uinput == “EXIT”
or
if uinput == “EXIT”
exit
end
For safety reasons, you could even do:
if “EXIT” == uinput
exit
end
this way if you accidentally use “=” instead of “==” you’ll get an
error:
Ruby will give you a warning if it spots a “=” in a conditional, but
often you want an error instead.
Ben
On 23.01.2007 05:45, [email protected] wrote:
The problem is that the ruby compiler thinks that the first “end” is the
exit
else
do something else
end
Alternatively
exit if uinput == “EXIT”
…
robert