Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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 ?

like image 268
Naveen Avatar asked Jun 20 '10 05:06

Naveen


1 Answers

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.

like image 125
11 revs, 3 users 90% Avatar answered Oct 11 '22 14:10

11 revs, 3 users 90%