Naveen
Naveen

Reputation: 6008

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 ?

Upvotes: 8

Views: 1098

Answers (3)

Mawg
Mawg

Reputation: 40150

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

http://en.wikipedia.org/wiki/Unstructured_programming

http://en.wikipedia.org/wiki/Considered_harmful

Upvotes: 0

Stephen C
Stephen C

Reputation: 718826

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.

Upvotes: 5

MTS
MTS

Reputation: 55

  • C (and Objective-C by the property that it is a direct superset of c).
  • Intel x86 assembly
  • Python

Upvotes: 0

Related Questions