Search code examples
syntaxbreakgotocontinuelabeled-statements

what programming languages support labels with break and continue statments?


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 ?


Solution

  • Here'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 not break <label> or continue <label>.
    • Ada - using the exit <label> statement.
    • PL/SQL - using the exit <label> or continue <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.