Java学習メモ(入門)_複数選択構造switch文

黄舟
リリース: 2016-12-19 14:03:03
オリジナル
1849 人が閲覧しました

複数選択構造 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)!


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート