|
Article on other languages:
|
switch文(スイッチぶん)とは、プログラミング言語において条件の値に対応する文を実行するための条件文の一種である。
文法Cおよびそれに類する言語の場合基本的な構文は以下の通りになる。 switch (条件式) { case 値 : 文 ……… default : 文 } 上記の「case」はいくつでも記述することができる。 この条件文は次のような手順で実行される。
ここで注意しなければならないのが、caseで実行された後、switch文を抜けずにそれ以降の文も実行される点である(caseはラベルに過ぎないので、次のcaseの前でswitch文を抜けさせる働きはない)。一般的には、次のcaseの分岐へまたがる直前でbreak文を記述する。このルールはフォールスルー(fall through)と言い、複数の値について同じ動作をさせたい場合に便利であるが、一方でbreak文を書き忘れやすいためしばしばバグの温床として問題視されてきた。そのためlintでは、意図的にフォールスルーしていることを示す 上記の例は、if文を羅列することで同様の動作を実現することができる。 if (条件式 == 値) { 文 } else if (条件式 == 値) { 文 } ……… else { 文 } C#C#ではCの構文に加えて「goto case」文が使える switch (someInteger) { case 0: case 1: return 1; // 変数someIntegerが0か1の時に実行 case 2: someInteger++; goto case 3: // case 3も実行 case 3: 文A; break; default: 文B; break; } C#では、1つ以上のステートメントが書かれたcaseラベルから次のcaseラベルにフォールスルーすることは許されない。ただし、ステートメントのないcaseラベルにおいてはこの限りではない。 C#では、CやC++が整数型しか条件の値に使用できないのに対し、文字列型にもswitch文を適用することができる。 PHPPHPでは、C#と同様、文字列にも、switch文が適用できる。 switch (str) { case "ABC": 文A; break; case "XYZ": 文B; break; case "123": 文C; break; default: 文D; break; } BASIC構造化されたBASICでは、Select Caseステートメントが存在することが多い。このステートメントでは、文字列または整数を対象にできる。 Select Case str Case "ABC" 文A Case "XYZ" 文B Case "123" 文C Case Else 文D End Select Cなどと違い、各Caseはラベルではなく、Selectステートメントはフォールスルーでない。 PerlPerlでは、perl-5.8以降からuse Switchとした上でswitch case文が使えるようになった。それ以前のバージョンのperlに関しては、Perl付属文章perlsynドキュメントのBasic BLOCKs and Switch Statementsの節に書式の例が書かれている。 関連項目 |
This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.
Mercedes Car
This site monitored by SitePinger.net