GVKun编程网logo

Java:在子类下使用带有枚举的switch语句(java switch 枚举类)

16

这篇文章主要围绕Java:在子类下使用带有枚举的switch语句和javaswitch枚举类展开,旨在为您提供一份详细的参考资料。我们将全面介绍Java:在子类下使用带有枚举的switch语句的优缺点

这篇文章主要围绕Java:在子类下使用带有枚举的switch语句java switch 枚举类展开,旨在为您提供一份详细的参考资料。我们将全面介绍Java:在子类下使用带有枚举的switch语句的优缺点,解答java switch 枚举类的相关问题,同时也会为您带来Java 10.switch语句、Java 12中的新特性:如何使用switch表达式替代传统的switch语句、java switch用法_Java switch语句、Java switch语句使用注意事项的实用方法。

本文目录一览:

Java:在子类下使用带有枚举的switch语句(java switch 枚举类)

Java:在子类下使用带有枚举的switch语句(java switch 枚举类)

首先,我要声明我对 C# 中的枚举更加熟悉,而且似乎 java 中的枚举非常混乱。

如您所见,我尝试在下一个示例中使用 switch 语句 @ enums,但无论我在做什么,我总是会收到错误消息。

我收到的错误是:

合格的 case 标签SomeClass.AnotherClass.MyEnum.VALUE_A必须替换为不合格的枚举常量VALUE_A

问题是我 理解这个错误,但我不能只写 VALUE_A 因为枚举位于另一个子类中。有没有办法解决这个问题?为什么它会发生在 Java 中?

//Main Classpublic class SomeClass {    //Sub-Class    public static class AnotherClass {        public enum MyEnum {            VALUE_A, VALUE_B        }            public MyEnum myEnum;    }    public void someMethod() {         MyEnum enumExample //...        switch (enumExample) {            case AnotherClass.MyEnum.VALUE_A: { <-- error on this line                //..                break;            }        }    }}

答案1

小编典典

将其更改为:

switch (enumExample) {    case VALUE_A: {        //..        break;    }}

线索在错误中。您不需要case使用枚举类型来限定标签,只需使用它的值即可。

Java 10.switch语句

Java 10.switch语句

switch语句


switch语句可以是程序从多条执行路径中选择一条来执行,这些路径的选择基于某个单一的值。

switch语句先计算一个表达式的值,然后将该值和几个可能的case子句取值进行匹配。每种取值都有与之有关的执行语句,当计算出表达式的值后,控制会转移到与表达式值相匹配的第一条case子句出执行。

 

 1 import java.util.Scanner;
 2 
 3 public class A {
 4 
 5     public static void main(String[] args)
 6        {
 7           int grade, category;
 8 
 9           Scanner scan = new Scanner(System.in);
10 
11           System.out.print("输入数字 (0 to 100): ");
12           grade = scan.nextInt();
13 
14           category = grade / 10;
15 
16           System.out.print("那个年级是");
17 
18           switch (category)
19           {
20              case 10:
21                 System.out.println("一个完美的分数。");
22                 break;
23              case 9:
24                 System.out.println("远高于平均水平。 优秀.");
25                 break;
26              case 8:
27                 System.out.println("高于平均水平。 不错。");
28                 break;
29              case 7:
30                 System.out.println("平均水平。.");
31                 break;
32              case 6:
33                 System.out.println("低于平均值。");
34                 System.out.println("指导员曾经"
35                                     + "在课堂上介绍");
36                 break;
37              default:
38                 System.out.println("没有通过。");
39           }
40        }
41     }

 

Java 12中的新特性:如何使用switch表达式替代传统的switch语句

Java 12中的新特性:如何使用switch表达式替代传统的switch语句

java是一种广泛应用于软件开发的编程语言,随着技术的不断发展,java也在不断更新版本,增加新的特性和改进。java 12是在2019年发布的版本,其中引入了一项重要的新特性:switch表达式。本文将介绍这个新特性,并展示如何使用switch表达式来替代传统的switch语句。

在Java的早期版本中,我们使用switch语句来实现多分支条件控制。例如,根据一个变量的取值,我们可以执行不同的代码块。然而,传统的switch语句有一些限制,比如只能使用常量作为分支条件以及缺乏灵活性和简洁性。Java 12中的新特性通过引入switch表达式来解决这些问题。

首先,让我们看一个传统的switch语句的示例:

int dayOfWeek = 1;
String dayName;

switch(dayOfWeek) {
    case 1:
        dayName = "Monday";
        break;
    case 2:
        dayName = "Tuesday";
        break;
    case 3:
        dayName = "Wednesday";
        break;
    case 4:
        dayName = "Thursday";
        break;
    case 5:
        dayName = "Friday";
        break;
    default:
        dayName = "Invalid day";
        break;
}

System.out.println(dayName);
登录后复制

以上代码根据变量dayOfWeek的值,分别将dayName赋值为对应的星期几名称,并打印输出。然而,使用传统的switch语句可能会显得冗长和繁琐,特别是在有很多分支条件的情况下。

Java 12中的switch表达式通过->符号来实现,使得代码更加简洁。下面的示例展示了如何使用switch表达式来完成与上述传统switch语句相同的功能:

立即学习“Java免费学习笔记(深入)”;

点击下载“修复打印机驱动工具”;

int dayOfWeek = 1;
String dayName = switch(dayOfWeek) {
    case 1 -> "Monday";
    case 2 -> "Tuesday";
    case 3 -> "Wednesday";
    case 4 -> "Thursday";
    case 5 -> "Friday";
    default -> "Invalid day";
};

System.out.println(dayName);
登录后复制

通过使用switch表达式,我们可以将分支条件和代码块放在一个->后面,使得代码更加简洁和易读。这种写法与Lambda表达式的写法非常相似,更加符合现代编程风格。

除了可以将switch表达式用于变量的赋值外,它还可以用于方法的返回值。例如,我们可以编写一个方法来根据传入的参数返回对应的结果:

public static String getDayName(int dayOfWeek) {
    String dayName = switch (dayOfWeek) {
        case 1 -> "Monday";
        case 2 -> "Tuesday";
        case 3 -> "Wednesday";
        case 4 -> "Thursday";
        case 5 -> "Friday";
        default -> "Invalid day";
    };

    return dayName;
}

public static void main(String[] args) {
    int dayOfWeek = 3;
    String dayName = getDayName(dayOfWeek);
    System.out.println(dayName);
}
登录后复制

上述代码中,我们通过调用getDayName方法并传入一个参数来获取对应的星期几名称。方法内部使用了switch表达式来完成该功能,并最终返回结果。

总结起来,在Java 12中引入的switch表达式是一个非常有用的新特性。它使得代码更加简洁和易读,并且可以替代传统的switch语句。我们可以根据具体情况选择使用switch表达式来提高代码的可读性和可维护性。

(注:本文的代码示例基于Java 12版本,使用了新特性,请确保您的开发环境支持Java 12或更高版本。)

以上就是Java 12中的新特性:如何使用switch表达式替代传统的switch语句的详细内容,更多请关注php中文网其它相关文章!

java switch用法_Java switch语句

java switch用法_Java switch语句

大家好,又见面了,我是你们的朋友全栈君。

Java switch语句用于从多个条件执行一个语句。它就像if-else-if语句一样。

语法:

switch(expression){

case value1:

//code to be executed;

break; //optional

case value2:

//code to be executed;

break; //optional

……

default:

// code to be executed if all cases are not matched;

}

switch语句执行流程图如下所示 –

1b0ee789df3c56f85016ca8d42b7adf2.png

示例:

public class SwitchExample {

public static void main(String[] args) {

int number = 20;

switch (number) {

case 10:

System.out.println(“10”);

break;

case 20:

System.out.println(“20”);

break;

case 30:

System.out.println(“30”);

break;

default:

System.out.println(“Not in 10, 20 or 30”);

}

}

}

执行输出结果如下:

20

Java switch语句落空通过所有case语句

下面我们来看看java switch语句落空通过所有条件,即 case 子句中的所有条件都未能匹配。也就是如果不在 switch case 下使用break语句,则它在第一个匹配之后也会执行接下来的所有 case 中的语句。

示例:

public class SwitchExample2 {

public static void main(String[] args) {

int number = 20;

switch (number) {

case 10:

System.out.println(“10”);

case 20:

System.out.println(“20”);

case 30:

System.out.println(“30”);

default:

System.out.println(“Not in 10, 20 or 30”);

}

}

}

执行输出结果如下:

20

30

Not in 10, 20 or 30

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

Java switch语句使用注意事项

Java switch语句使用注意事项

1、多个case后面的值不可以重复

2、switch后面小括号的数据类型(case 后面的数值类型)只能是以下类型

  基本数据类型: byte / short / char / int

  引用数据类型:String / enum

3、switch语句可以很灵活,多个case和default(只能有一个)顺序可以随意,break语句还可以省略

  执行规则:匹配到case或default语句就从当前位置往下执行,直到遇到break,或者switch整体结束

public class SwitchPractise {
    public static void main(String[] args){
        int num = 10;
        String week;
        switch (num) {
            case 1:
                week = "星期一";
                break;
            case 2:
                week = "星期二";
                break;
            case 3:
                week = "星期三";
                break;
            case 4:
                week = "星期四";
                break;
            case 5:
                week = "星期五";
                break;
            case 6:
                week = "星期六";
                break;
            default:
                week = "日期有误";
                // break; // 最后一个break可以省略,但不建议,因为如果default不是在最后,省略了会穿透到下一个case
            case 7:
                week = "星期日";
                break;
        }
        System.out.println(week); // 星期日
    }
}

今天关于Java:在子类下使用带有枚举的switch语句java switch 枚举类的介绍到此结束,谢谢您的阅读,有关Java 10.switch语句、Java 12中的新特性:如何使用switch表达式替代传统的switch语句、java switch用法_Java switch语句、Java switch语句使用注意事项等更多相关知识的信息可以在本站进行查询。

本文标签: