Choice System Cross Reference
This table refers to the most recent language specification of each language. For languages that do not have a specification, the latest officially released implementation is referred to.
Programming language | Structured if | switch/select/case | Arithmetic if | Pattern matching | ||
---|---|---|---|---|---|---|
then | else | else-if | ||||
Ada | Yes | Yes | Yes | Yes | No | No |
C/C++ | Yes | Yes | unneeded | fall-through | No | No |
C# | Yes | Yes | unneeded | Yes | No | No |
Eiffel | Yes | Yes | Yes | Yes | No | No |
F# | Yes | Yes | Yes | unneeded | No | Yes |
Fortran | Yes | Yes | Yes | Yes | Yes | No |
Haskell | Yes | needed | unneeded | unneeded | No | Yes |
Java | Yes | Yes | unneeded | fall-through | No | No |
ECMAScript (JavaScript) | Yes | Yes | unneeded | fall-through | No | No |
Oberon | Yes | Yes | Yes | Yes | No | No |
Perl | Yes | Yes | Yes | Yes | No | No |
PHP | Yes | Yes | Yes | fall-through | No | No |
Pascal, Delphi | Yes | Yes | unneeded | Yes | No | No |
Python | Yes | Yes | Yes | No | No | No |
QuickBASIC | Yes | Yes | Yes | Yes | Yes | No |
Ruby | Yes | Yes | Yes | Yes | No | No |
SQL | Yes | Yes | Yes | Yes | No | No |
Visual Basic, classic | Yes | Yes | Yes | Yes | No | No |
Visual Basic .NET | Yes | Yes | Yes | Yes | No | No |
Windows PowerShell | Yes | Yes | Yes | fall-through | No | No |
- ^ This refers to pattern matching as a distinct conditional construct in the programming language – as opposed to mere string pattern matching support, such as regular expression support.
- 1 2 3 4 5 The often-encountered
else if
in the C family of languages, and in Haskell, is not a language feature but a set of nested and independent if then else statements combined with a particular source code layout. However, this also means that a distinct else-if construct is not really needed in these languages. - 1 2 In Haskell and F#, a separate constant choice construct is unneeded, because the same task can be done with pattern matching.
- 1 2 SQL has two similar constructs that fulfill both roles, both introduced in SQL-92. A "searched CASE" expression CASE WHEN cond1 THEN expr1 WHEN cond2 THEN expr2 ELSE exprDflt END works like if ... else if ... else, whereas a "simple CASE" expression: CASE expr WHEN val1 THEN expr1 ELSE exprDflt END works like a switch statement. For details and examples see Case (SQL).
Read more about this topic: Conditional (computer Programming)
Famous quotes containing the words choice, system, cross and/or reference:
“It was a real treat when hed read me Daisy Miller out loud. But wed reached the point in our relationship when, in a straight choice between him and Henry James, Id have taken Henry James any day even if Henry James were dead and not much of a one for the girls when living, either.”
—Angela Carter (19401992)
“My advice to people today is as follows: If you take the game of life seriously, if you take your nervous system seriously, if you take your sense organs seriously, if you take the energy process seriously, you must turn on, tune in, and drop out.”
—Timothy Leary (b. 1920)
“There is the grand truth about Nathaniel Hawthorne. He says NO! in thunder; but the Devil himself cannot make him say yes. For all men who say yes, lie; and all men who say no,why, they are in the happy condition of judicious, unincumbered travellers in Europe; they cross the frontiers into Eternity with nothing but a carpet-bag,that is to say, the Ego. Whereas those yes-gentry, they travel with heaps of baggage, and, damn them! they will never get through the Custom House.”
—Herman Melville (18191891)
“If Hitler invaded hell I would make at least a favourable reference to the devil in the House of Commons.”
—Winston Churchill (18741965)