Re: Java needs "goto" (was Re: hi)
- From: Martin Gregorie <martin@xxxxxxxxxxxxxxxx>
- Date: Sat, 03 Feb 2007 12:22:58 +0000
Randolf Richardson wrote:
This typically occurs because the reserved word "goto" isn't implemented. There are situations where "goto" would be very useful, such as:I totally disagree. Assemblers need "goto" but no decent HLL does. That goes for COBOL too and before you ask, yes I've written GOTO-less COBOL.
I have never used goto (or needed it) in C and see no need for it in Java.
0. An alternative to "break label" since label is currently limited in where it can be located (such code could be easier to read)I don't use this construction in C either and, again, don't need it.
1. The ability to share code between methods within a class, which all end with the same functionality (this could be more efficient than calling another method; javac would need to generate errors such as attempts to access variables that belong to different methods, return type mismatches, etc.)Encapsulating the code in a private method makes for more readable code as well as eliminating code duplication.
I do agree with your view that infinite loops that depend on exceptions are a bad practice. Using conditionals to trigger a "break" would also be better handled by making that the focus of the loop -- and if they need to compare afterwards, then "do { ... } while (condition);" can certainly solve that problem.Yes - but that's a result of classes that throw exceptions when their methods would be better off returning control values. IMO if you have to use exceptions to control normal logic flow in code that calls the class methods merely demonstrates bad class design.
I never design classes/methods that force their user to control normal logic flow with exceptions: I use methods that return control information (e.g hasNextObject() to control loops). Similarly, my constructors never throw exceptions: code that may signal errors with exceptions is pulled out of the constructor and encapsulated as a separate method. This is because try...catch blocks that include class instance declarations screw up otherwise clean block structures by preventing me from grouping all object instance declarations at the start of a block rather than sprinkling them through the code.
--
martin@ | Martin Gregorie
gregorie. | Essex, UK
org |
.
- Follow-Ups:
- Re: Java needs "goto" (was Re: hi)
- From: Andrew Thompson
- Re: Java needs "goto" (was Re: hi)
- From: Lew
- Re: Java needs "goto" (was Re: hi)
- From: Robert Klemme
- Re: Java needs "goto" (was Re: hi)
- References:
- Java needs "goto" (was Re: hi)
- From: Randolf Richardson
- Java needs "goto" (was Re: hi)
- Prev by Date: disabling window movement
- Next by Date: Re: disabling window movement
- Previous by thread: Re: Java needs "goto" (was Re: hi)
- Next by thread: Re: Java needs "goto" (was Re: hi)
- Index(es):
Relevant Pages
|