分支结构switch-case与break、continue关键字:

1.语法格式:


switch(表达式){
case 常量1:
//执行语句1;
//break;
case 常量2:
//执行语句2;
//break;
...
default:
//执行语句2;
//break;
}


2.执行过程:


根据表达式中的值,依次匹配case语句,一旦与case中某个常量相等,那么就执行case中的执行语句;
执行完此语句之后:
情况1:遇到break,则执行break后,跳出当前的switch-case结构
情况2:没有遇到break,则继续执行其后的case中的执行语句-------->case穿透
...
直到遇到break或者执行完所有的case以及default中的语句,退出当前的switch-case结构


3.说明:


switch中的表达式只能是特定的数据类型。eg:byte、short、char、int、枚举(JDK5新增)、String(JDK7新增)
case后都是常量,使用表达式与常量进行相等的判断,不能进行范围的比较
case匹配情况有限
break:执行就跳出当前的switch-case结构
default:类似于if-else中的else结构
default是可选的,位置是灵活的

switch-case和if-else之间的转换:
switch-case都可以改写成if-else,反之不成立
两个都可以使用时,推荐使用switch-case,应该相比较switch-case效率更高

public class SwitchCaseTest {
    public static void main(String[] args) {
        int num = 1;
        switch (num){

            case 0:
                System.out.println("0");
            case 1:
                System.out.println("1");
                //break;结束当前的switch-case结构
            case 2:
                System.out.println("2");
            default:
                System.out.println("other");
        }
    }
}

举例:
package org.example;
/*
成绩 > 60,输出”合格“
成绩 < 60,输出”不合格“
 */
public class SwitchCaseTest1 {
    public static void main(String[] args) {
        int grade = 66;
        switch (grade / 60){
            case 0:
                System.out.println("不合格");
                break;
            case 1:
                System.out.println("合格");
                break;
            default:
                System.out.println("成绩输入有误!");
                break;
        }

        //方式2:
        switch (grade / 10){
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.println("不合格");
                break;
            case 6:
            case 7:
            case 8:
            case 9:
            case 10:
                System.out.println("合格");
                break;
            default:
                System.out.println("输入有误");
                break;
        }
    }
}
break和continue两个关键字的使用

                        使用范围                 在循环结构中的作用
break:         switch-case             结束或跳出当前循环结构
                      循环结构中

continue:     循环结构中                 结束或跳出当次循环

循环结构中 结束或跳出当次循环

public class BreakContinueTest {
    public static void main(String[] args) {
        for (int i = 1;i <= 10;i++){
            if (i % 4 == 0){
                //break;
                continue;
                //System.out.println("opop");编译不通过,不可能到达的语句
            }
            System.out.print(i);
        }
        System.out.println();

        //*******************************************
        label:for (int j = 1;j <= 4;j++){
            for (int i = 1;i <= 10;i++){
                if (i % 4 == 0){
                    //break;
                    //continue;

                    //了解
                    break label;
                    //continue label;带标签的,可以指定
                }
                System.out.print(i);
            }
            System.out.println();
        }
    }
}

你可能感兴趣的:(java)