If-Then and "End"

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?

···

--
Posted via http://www.ruby-forum.com/.

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
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?

--
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

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?

"Sam C." <mathwhiz728@gmail.com> дÈëÏûÏ¢ÐÂÎÅ:dde09efd974a47ac491498b540e43ed1@ruby-forum.com...

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?

--
Posted via http://www.ruby-forum.com/\.

It's not the Pascal£¬program end with an 'End.', just use exit.

Alternatively

exit if uinput == "EXIT"
...

  robert

···

On 23.01.2007 05:45, gwtmp01@mac.com wrote:

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 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

gwtmp01@mac.com writes:

[ ... ]

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.

···

On Jan 22, 2007, at 11:32 PM, Sam C. wrote:

--
Lloyd Zusman
ljz@asfast.com
God bless you.

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.