`

java中switch的使用

阅读更多
java中的switch仅支持case条件仅支持int、enum两种类型。
用enum的时候,不能直接写下列形式。

switch (timeType) {
            case ProdtransTimeTypeEnum.DAILY:

                break;

            default:
                break;
        }


而是先import进来此枚举类,case中直接写枚举值

switch (timeType) {
            case DAILY:

                break;

            default:
                break;
        }


使用误区1
今天在做一个需求时,碰到一个类似如下switch语句。
for (int i = 0; i < 5; i++) {
            System.out.println("-----------------" + i);
            switch (i) {
                case 1:
                    System.out.println(1);
                    continue;
                case 2:
                    System.out.println(2);
                    return;
                case 3:
                    System.out.println(3);
                    break;
                default:
                    System.out.println("default");
                    break;
            }
        }



我要做的是,对是否continue循环加一个条件判断,我是这样改的:

for (int i = 0; i < 5; i++) {
            System.out.println("-----------------" + i);
            switch (i) {
                case 1:
                    System.out.println(1);
                    if (条件) {
                        break;
                    } else {
                        continue;
                    }
                case 2:
                    System.out.println(2);
                    return;
                case 3:
                    System.out.println(3);
                    break;
                default:
                    System.out.println("default");
                    break;
            }
        }

测试发现这样改不对,循环在满足条件的情况下没有跳出,继续循环了。。。问题原因就是:break只是跳出了switch,并没有跳出for循环。

为什么会犯这个错误?
1. 对switch理解不深。
2. switch里的continue, return误导了我。
continue和break经常配对出现在循环中,continue是退出本次循环,break是跳出整个循环,return是跳出整个方法。而这个例子里break只是跳出了switch。。。

switch的标准写法是这样的:
switch(integral-selector) {
case integral-value1: statement;break;
case integral-value2: statement;break;
case integral-value3: statement;break;
case integral-value4: statement;break;
case integral-value5: statement;break;
default: statement;
} 

如果省略break,程序会继续执行其他case直到遇到下一个break。

我个人建议在用switch的时候尽量选择这样的标准写法,不要加入continue、return等,代码可读性差而且容易犯错。。。特别是在本来逻辑就复杂的情况下,很难关注到switch里的这个细节了。
1
0
分享到:
评论

相关推荐

    38.java中的switch语句.zip

    38.java中的switch语句.zip38.java中的switch语句.zip38.java中的switch语句.zip38.java中的switch语句.zip38.java中的switch语句.zip38.java中的switch语句.zip38.java中的switch语句.zip38.java中的switch语句.zip...

    switch语句在java和c#中的区别

    在 Java 和 C# 中,`switch` 语句在语法和行为上有一些显著的区别,尤其是在处理多条 `case` 的连续执行和 `break` 的使用上。 首先,我们来看 C# 中的 `switch` 语句示例: ```csharp class StudentGrade { ...

    java中switch的运用

    基础运用,初步理解switch的基本运用,理解switch在java中所处的地位

    在java switch中使用String作为分支条件

    ### 在Java Switch中使用String作为分支条件 #### 引言 在Java中,`switch`语句最初只能处理`int`、`char`以及`enum`类型的数据。然而,在实际开发过程中,有时需要根据字符串(`String`)来执行不同的逻辑分支。...

    java中switch的使用及语法说明

    - **多条件匹配**:从Java 7开始,可以在同一个 `case` 语句中使用逗号分隔多个值,例如 `case 1, 2, 3: ...`。 综上所述,`switch` 语句是Java中一种非常实用的控制结构,它可以简化条件分支的编写,提高代码的...

    java_switch(V1.08).zip

    四方交换机现场调试bat软件 ... java_switch(V1.08) java_switch(V1.08)java_switch(V1.08) ...java_switch(V1.08)java_switch(V1.08)java_switch(V1.08)java_switch(V1.08)java_switch(V1.08)java_switch(V1.08)

    java基础-switch的使用

    在Java中,switch语句是一种用于根据不同的值执行不同操作的控制流语句。它可以替代多个if-else语句,使代码更加简洁和可读。

    Java语言switch语句的编写

    switch 语句的写法 简单的一个代码,简述java语言switch、语句的编写

    Java中switch语句.pdf

    Java中switch语句.pdf 学习资料 复习资料 教学资源

    Java-Java Switch语句详解教程

    Java Switch语句是Java编程语言中的一个控制流程结构,它提供了多路选择,允许程序根据变量的值执行不同的代码块。在Java中,Switch语句主要用于替代一系列的if...else if...else语句,使代码更加简洁、易读。本教程...

    Java中switch实例.pdf

    - 从Java 14开始,引入了`yield`关键字,使得`switch`表达式成为可能,这使得`switch`可以在表达式中使用,而不仅仅局限于语句。 总结来说,`switch`语句是Java中处理多分支逻辑的重要工具,尤其在处理枚举类型和...

    Java中switch语句的注意事项.pdf

    需要注意的是,Java 7之后引入了枚举类型(enum),也可以在switch语句中使用。然而,浮点型(float和double)、long以及任何对象类型(包括String)是不被支持的。 每个case后面要跟的是要与switch表达式进行比较...

    Java中switch判断语句典型使用实例

    在Java编程语言中,`switch`语句是一种条件控制结构,用于执行多个可能的分支中的一个,这通常比使用多个`if...else if...else`语句更简洁、易读。`switch`语句适用于执行基于变量不同值的不同操作,这里的变量通常...

    Java中的Switch语句

    总结,Java中的`switch`语句为程序员提供了处理多分支逻辑的有效工具,通过合理使用它可以提高代码的可读性和可维护性。在实际开发中,应根据具体情况灵活运用,并注意保持代码的简洁性和清晰度。

    Java中Switch用法代码示例

    在Java中,Switch语句的使用需要注意以下几点: 1. Switch语句后的表达式只能是byte、short、char、int类型,在Java 1.7中也支持String类型。 2. 在Switch语句中的Case语句如果少写了Break关键字,在编译时不会...

    Java switch 语句如何使用 String 参数

    在 Java 7 之前,如果我们尝试使用 String 参数在 switch 语句中,编译器将报告错误,指出“Cannot switch on a value of type String for source level below 1.7. Only convertible int values or enum variables ...

    JAVA 实现 switch循环 判断是星期几

    JAVA 实现的 SWITCH 循环 判断是星期几 小试身手

    switch_java_switch-case_例题_

    switch case 两个例题。1.对学生成绩大于60分的,输出“合格”。低于60分的,输出“不合格”。2.从键盘上输入2019年的“month”和“day”,要求通过程序输出输入的日期为2019年的第几天。

    java中switch选择语句代码详解

    Java 中 Switch 选择语句代码详解 Java 中的 Switch 选择语句是一种多路分支语句,用于根据不同的条件来执行不同的语句块。下面是 Switch 语句的基本结构: switch(表达式){ case 常量1: 语句块1; break; case...

    JAVA程式-自动贩卖机SWITCH&CASE.doc

    从标题 "JAVA 程式-自动贩卖机 SWITCH&CASE" 中,我们可以看到这是一个 Java 程式设计的自动贩卖机系统,使用 SWITCH&CASE 语句来实现不同的选择逻辑控制。 描述解析 从描述 "JAVA 程式-自动贩卖机 SWITCH&CASE" ...

Global site tag (gtag.js) - Google Analytics