Java中的Switch语句

正如if-else语句告诉您的程序仅在特定测试的结果为true或false时才执行代码的特定部分,因此Java switch语句可以具有多个可能的执行路径

开关与–

  • 原始数据类型例如byteshortchar,和int
  • 包装类例如CharacterByteShort,和Integer
  • 枚举类型(在Java 5中添加)
  • 字符串类(在Java 7中添加)

1。 Java switch语句语法

switch语句的一般形式是–

switch (switch-expression) 
{
        case label-1:
                statements;
 		break;

        case label-2:
                statements;
 		break;

        case label-3:
                statements;
 		break;

        default:
                statements;
}

在这里label-1label-2等是“编译时常量表达式”(必须在编译时知道标签的值)。

我们可以使用嵌套的if-else块实现类似的功能,但是switch语句更易读和干净。

2。 Java switch语句执行 Stream 程

switch语句的评估如下:

  1. 评估switch-expression。
  2. 如果switch-expression的值与case标签匹配,则从匹配的case标签开始执行,并执行所有语句,直到遇到break语句为止。
  3. 如果switch-expression的值与case标签不匹配,则从可选默认标签后的语句开始执行,并继续执行,直到break遇到switch语句或该语句结束为止。

您可以很容易地看出,不必breakdefault标签内使用语句,因为默认标签是switch语句中的最后一个标签,并且switch语句的执行将在此之后停止。

3.表达式值必须在范围内

请注意,用作大小写标签的常量表达式值必须在switch-expression的数据类型范围内

Java中字节数据类型的范围是-128到127,因此以下代码将无法编译,因为第二个case标签是150,该值超出字节数据类型的范围:

byte b = 10;
switch (b) {
        case 5:
                b++;
                break;

        case 150:       // A compile-time error。 150 is greater than 127
                b--;
                break;

        default:
                b = 0;
}

4.不同的标签

要注意的另一个重要点是,switch语句中的两个大小写标签不能相同。由于重复了案例标签10,因此以下代码无法编译:

int num = 10;
switch (num) {
        case 10:
                num++;
                break;

        case 10: // A compile-time error。 Duplicate case label 10
                num--;
                break;

        default:
                num = 100;
}

这就是java中的switch语句的全部内容。

阅读更多:Java控制语句

saigon has written 1445 articles

2 thoughts on “Java中的Switch语句

Leave a Reply