複数選択構造 switch ステートメント
Java では、switch ステートメントは、式の値に基づいて複数の操作の 1 つを選択して実行する、多方向分岐選択プロセス用に特別に提供されます。その文法形式は次のとおりです:
witch(表达式){ case 表达式常量1:语句1; break; case 表达式常量2:语句2; break; ...... case 表达式常量n:语句n; break; [default:语句n+1;] }
このうち、case 式定数はラベルとなり、case 分岐の入り口を表します。 switch ステートメントが実行されると、最初に switch の括弧内の「式」の値が計算されます。この値は整数型または文字型でなければなりません。同時に、後続の各 case 式定数の値の型も同じである必要があります。スイッチの括弧内の「式」として、値の型は一貫しています。 case ステートメントは定式化操作を表し、構造の出口に進みます。デフォルト句はオプションです。式の値がケース式定数の値と一致しない場合、デフォルト句が実行され、構造体が終了します。
最後に、スイッチに関する非常に重要な注意点をいくつかお話します。
まず、switch(整数または文字変数)
)、変数の型はテキストでマークされているとおりで、整数型と文字型のみが可能です。これらには int、char が含まれます。もちろん、さまざまな長さの符号なし型または整数 (符号なし)
int、short、符号なし
char)などでも大丈夫です。さらに、列挙型 (enum) も整数型または文字型によって内部的に実装されます。それで、それも大丈夫です。次のような実数型 (浮動小数点) の数値は機能しません:
float a = 0.123; switch(a) //错误!a不是整型或字符类型变量。 { .... }
2 番目に、case の後に直接定数値 (例の 1、2、3、4 など) を続けることも、定数の計算式を指定することもできます。 、2+2 などですが、変数や、* 2 などの変数を含む式にすることはできません。もちろん、4.1 や 2.0 / 2 などの実数にすることはできません。
switch(formWay) { case 2-1 : //正确 ... case a-2 : //错误 ... case 2.0 : //错误 ... }
なお、caseと定数値の後にはコロンが必要ですので、おろそかにしないように注意してください。
第三に、休憩の役割。 Break を使用すると、選択した分岐を実行した後、プログラムが switch ステートメント全体から抜け出して (つまり、スイッチに接続されている {} のペアにジャンプして)、切り替えを完了できます。このブレークがなければ、プログラムは次のブレークに遭遇するか切り替えが完了するまで次の分岐に進み続けます。
例えば、今プログラムがcase 1:の分岐に入ったとしますが、case 1の分岐にはbreakがありません:
case 1 : System.out.println("您是通过搜索引擎来到本网站的。"); case 2 : System.out.println("您是通过朋友介绍来到本网站的。");
その後、プログラムが「検索エンジン経由でこのWebサイトに来ました。」と出力した後、ケース 2 では、「友人の紹介でこの Web サイトに来ました。」と出力され続けます。
4番目に、defaultはオプションです。その使用法についてはすでに述べましたが、defaultが存在しない場合、プログラムは一致するcaseブランチを見つけることができなかった後、switchステートメントの範囲内では何もせず、switchを直接完了します。例のデフォルト コードをコメント アウトしてテスト実行し、選択時にカスタム コードを入力することもできます。
5 番目に、必要に応じて、それぞれの場合に {} を使用して、独立した複合ステートメントを明示的に生成できます。前に if... ステートメントとその他のフロー制御ステートメントについて説明したとき、複合ステートメントを生成するために {} を使用しました。
if (条件) { 分支一; }
ブランチ内にステートメントが 1 つだけ存在しない限り、ここでは中括弧 {} は必要ありません。ただし、switch の各 case ステートメントでは、文法形式での {} の使用を示していません。以下を参照してください。
switch ( 整型或字符型变量 ) { case 变量可能值1 : 分支一; break; case 变量可能值2 : .... }
一般的な教科書には、case 分岐では {} を使用する必要はないとのみ記載されていますが、ここで皆さんに思い出していただきたいと思います。そして、どのような状況でも、case ブランチに {} を追加する必要はありません。たとえば、特定のケースで変数を定義したい場合:
switch (formWay) { case 1 : int a=2; //错误。由于case不明确的范围,编译器无法在此处定义一个变量。 ... case 2 : ... }
この場合、{} を追加することで問題を解決できます。
switch (formWay) { case 1 : { int a=2; //正确,变量a被明确限定在当前{}范围内。 ... } case 2 : ... }
最後にサンプルプログラムを見てみましょう:
public class TestSwitch //基于字符型 { public static void main(String[] args) { //声明变量score,并为其赋值为'C' char score = 'C'; //执行swicth分支语句 switch (score) { case 'A': System.out.println("优秀."); break; case 'B': System.out.println("良好."); break; case 'C': System.out.println("中"); break; case 'D': System.out.println("及格"); break; case 'F': System.out.println("不及格"); break; default: System.out.println("成绩输入错误"); } } }
上記は Java 学習ノート (入門)_複数選択構造 switch ステートメントの内容です。さらに関連するコンテンツについては、PHP 中国語 Web サイト (www. php.cn)!