ホームページ Java &#&チュートリアル Java学習メモ(入門)_複数選択構造switch文

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

Dec 19, 2016 pm 02:03 PM
java switch ステートメント

複数選択構造 switch ステートメント
Java では、switch ステートメントは、式の値に基づいて複数の操作の 1 つを選択して実行する、多方向分岐選択プロセス用に特別に提供されます。その文法形式は次のとおりです:

1

2

3

4

5

6

7

8

9

10

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) も整数型または文字型によって内部的に実装されます。それで、それも大丈夫です。次のような実数型 (浮動小数点) の数値は機能しません:

1

2

3

4

5

float a = 0.123;

switch(a) //错误!a不是整型或字符类型变量。

{

....

}

ログイン後にコピー

2 番目に、case の後に直接定数値 (例の 1、2、3、4 など) を続けることも、定数の計算式を指定することもできます。 、2+2 などですが、変数や、* 2 などの変数を含む式にすることはできません。もちろん、4.1 や 2.0 / 2 などの実数にすることはできません。

1

2

3

4

5

6

7

8

9

switch(formWay)

{

case 2-1 : //正确

...

case a-2 : //错误

...

case 2.0 : //错误

...

}

ログイン後にコピー

なお、caseと定数値の後にはコロンが必要ですので、おろそかにしないように注意してください。

第三に、休憩の役割。 Break を使用すると、選択した分岐を実行した後、プログラムが switch ステートメント全体から抜け出して (つまり、スイッチに接続されている {} のペアにジャンプして)、切り替えを完了できます。このブレークがなければ、プログラムは次のブレークに遭遇するか切り替えが完了するまで次の分岐に進み続けます。
例えば、今プログラムがcase 1:の分岐に入ったとしますが、case 1の分岐にはbreakがありません:

1

2

3

4

5

case 1 :

System.out.println("您是通过搜索引擎来到本网站的。");

case 2 :

System.out.println("您是通过朋友介绍来到本网站的。");

 

ログイン後にコピー

その後、プログラムが「検索エンジン経由でこのWebサイトに来ました。」と出力した後、ケース 2 では、「友人の紹介でこの Web サイトに来ました。」と出力され続けます。

4番目に、defaultはオプションです。その使用法についてはすでに述べましたが、defaultが存在しない場合、プログラムは一致するcaseブランチを見つけることができなかった後、switchステートメントの範囲内では何もせず、switchを直接完了します。例のデフォルト コードをコメント アウトしてテスト実行し、選択時にカスタム コードを入力することもできます。

5 番目に、必要に応じて、それぞれの場合に {} を使用して、独立した複合ステートメントを明示的に生成できます。前に if... ステートメントとその他のフロー制御ステートメントについて説明したとき、複合ステートメントを生成するために {} を使用しました。

1

2

3

4

if (条件)

{

分支一;

}

ログイン後にコピー

ブランチ内にステートメントが 1 つだけ存在しない限り、ここでは中括弧 {} は必要ありません。ただし、switch の各 case ステートメントでは、文法形式での {} の使用を示していません。以下を参照してください。

1

2

3

4

5

6

7

8

9

switch ( 整型或字符型变量 )

{

 case 变量可能值1 :

  分支一;

 break;

case 变量可能值2 :

....

}

 

ログイン後にコピー

一般的な教科書には、case 分岐では {} を使用する必要はないとのみ記載されていますが、ここで皆さんに思い出していただきたいと思います。そして、どのような状況でも、case ブランチに {} を追加する必要はありません。たとえば、特定のケースで変数を定義したい場合:

1

2

3

4

5

6

7

8

9

switch (formWay)

{

case 1 :

int a=2; //错误。由于case不明确的范围,编译器无法在此处定义一个变量。

...

case 2 :

...

}

 

ログイン後にコピー

この場合、{} を追加することで問題を解決できます。

1

2

3

4

5

6

7

8

9

10

switch (formWay)

{

case 1 :

 { 

int a=2; //正确,变量a被明确限定在当前{}范围内。

...

 } 

case 2 :

...

}

ログイン後にコピー

最後にサンプルプログラムを見てみましょう:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

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)!


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaの平方根 Javaの平方根 Aug 30, 2024 pm 04:26 PM

Javaの平方根

Javaの完全数 Javaの完全数 Aug 30, 2024 pm 04:28 PM

Javaの完全数

Java の乱数ジェネレーター Java の乱数ジェネレーター Aug 30, 2024 pm 04:27 PM

Java の乱数ジェネレーター

Javaのアームストロング数 Javaのアームストロング数 Aug 30, 2024 pm 04:26 PM

Javaのアームストロング数

ジャワのウェカ ジャワのウェカ Aug 30, 2024 pm 04:28 PM

ジャワのウェカ

Java Springのインタビューの質問 Java Springのインタビューの質問 Aug 30, 2024 pm 04:29 PM

Java Springのインタビューの質問

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

Java 8 Stream Foreachから休憩または戻ってきますか?

Javaのスミス番号 Javaのスミス番号 Aug 30, 2024 pm 04:28 PM

Javaのスミス番号

See all articles