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:
“Come and take choice of all my library,
And so beguile thy sorrow.”
—William Shakespeare (15641616)
“There are obvious places in which government can narrow the chasm between haves and have-nots. One is the public schools, which have been seen as the great leveler, the authentic melting pot. That, today, is nonsense. In his scathing study of the nations public school system entitled Savage Inequalities, Jonathan Kozol made manifest the truth: that we have a system that discriminates against the poor in everything from class size to curriculum.”
—Anna Quindlen (b. 1952)
“In ancient timestwas no great loss
They hung the thief upon the cross:
But now, alas!I sayt with grief
They hang the cross upon the thief.”
—Anonymous. On a Nomination to the Legion of Honour, from Aubrey Stewarts English Epigrams and Epitaphs (1897)
“In sum, all actions and habits are to be esteemed good or evil by their causes and usefulness in reference to the commonwealth, and not by their mediocrity, nor by their being commended. For several men praise several customs, and, contrarily, what one calls vice, another calls virtue, as their present affections lead them.”
—Thomas Hobbes (15791688)