I recently read about labelled statments in java and the ability to specify a label with the break and continue statements. What other languages support this sort of syntax ?
views:
129answers:
3Here's a list of languages with Java-like labels; i.e the ability to branch out of a labeled statement or block.
- Java
- Javascript
- C# - C# supports
goto <label>
, but notbreak <label>
orcontinue <label>
. - Ada - using the
exit <label>
statement. - PL/SQL - using the
exit <label>
orcontinue <label>
statements.
Here's a list of languages with a more general GO TO construct (or equivalent), allowing an application to branch to any label at the same syntactic level or outer level.
- Pascal
- FORTRAN - FORTRAN also has a "computed goto" in which the target label is selected at runtime, and an "assigned goto" which is a form of self-modifying code.
- COBOL
- C
- C++
Many languages (also) support throwing and catching exceptions. This can be thought of as a generalized form of branch-to-label. However there are two important distinctions:
- The "throw point" does not specify the location that will catch the exception (i.e. a label).
- Control flow may branch out of the current procedure/function/method call.
(Ruby's throw / catch
seems to have aspects of normal exception handling and labeled statements. However, I'm inclined to think that since the label does not need to be lexically scoped, this is closest to normal exception handling.)
please add more.
Do you wan an exhaustive list? How are you going to award the answer? To whomever lists most?
Basic, Pascal, Perl, all assemblers, I woudl imaigine (do I get a point for each that I name?, ...
You might want to read
http://en.wikipedia.org/wiki/Goto
- C (and Objective-C by the property that it is a direct superset of c).
- Intel x86 assembly
- Python