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?
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?
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
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 Wright
···
On Jan 22, 2007, at 11:32 PM, Sam C. wrote:
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
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?
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?
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
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?
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
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?
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
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.
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 Jan 23, 2007, at 04:47, Lloyd Zusman wrote:
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.