Java学习笔记---流程控制语句

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/oampZuo12345/article/details/48028177

主要整理一下容易出错的switch和控制跳转。

  • switch语句
  • 控制跳转语句

switch语句

1、格式:
    switch(表达式) {
        case 值1:
            语句体1;
            break;
        case 值2:
            语句体2;
            break;
        ...
        default:
            语句体n+1;
            break;
    }

    格式解释说明:
        switch:说明这是switch语句。
        表达式:可以是byte,short,int,char
            JDK5以后可以是枚举
            JDK7以后可以是字符串
        case:后面的值就是要和表达式进行比较的值
        break:表示程序到这里中断,跳出switch语句
        default:如果所有的情况都不匹配,就执行这里,相当于if语句中的else

2、面试题
    switch语句的表达式可以是byte吗?可以是long吗?可以是String吗?
        可以,不可以,JDK7以后可以

3、执行流程:
    A:首先计算表达式的值
    B:和每一个case进行匹配,如果有就执行对应的语句体,看到break就结束。
    C:如果没有匹配,就执行default的语句体n+1。

4、注意事项:
    A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
    B:default可以省略吗?
        可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
        特殊情况:
            case就可以把值固定。
            A,B,C,D
    C:break可以省略吗?
        可以省略,但是结果可能不是我们想要的。
        会出现一个现象:case穿透。
        最终我们建议不要省略
    D:default一定要在最后吗?
        不是,可以在任意位置。但是建议在最后。
    E:switch语句的结束条件
        a:遇到break就结束了
        b:执行到末尾就结束了

5、if语句和switch语句各自的场景
    A:if
        针对boolean类型的判断
        针对一个范围的判断
        针对几个常量的判断
    B:switch
        针对几个常量的判断
//看程序写结果
//y=4
//---------------
//b=6
    public static void main(String[] args) {
        int x = 2;
        int y = 3;
        switch(x){
            default:
                y++;
                break;
            case 3:
                y++;
            case 4:
                y++;
        }
        System.out.println("y="+y);  
        System.out.println("---------------");

        int a = 2;
        int b = 3;
        switch(a){
            default:
                b++;
            case 3:
                b++;
            case 4:
                b++;
        }
        System.out.println("b="+b);
    }

跳转控制语句

1、break:中断的意思
    A:用在循环和switch语句中,离开此应用场景无意义。
    B:作用
        a:跳出单层循环
        b:跳出多层循环,需要标签语句的配合
    //跳出单层循环
    public static void main(String[] args) {
        for(int x = 0;x < 10;x++){
            if(x==2){
                break;
            }
        System.out.println("HelloWorld");
        }

        for(int i=0;i<3;i++){
            for(int j=0;j<4;j++){
                if(j==2){
                    break;
                }
            System.out.println("*");
            }
            System.out.println();
        }
    }
    //输出结果
    HelloWorld
    HelloWorld
    *
    *

    *
    *

    *
    *


----------

//跳出多层循环
    public static void main(String[] args) {
        wc:for(int i=0;i<3;i++){
            nc:for(int j=0;j<4;j++){
                if(j==2){
                    break wc;
                }
            System.out.println("*");
            }
            System.out.println();
        }
    }
//输出结果
*
*

2、continue:继续
    A:用在循环中,离开此应用场景无意义。
    B:作用
        a:跳出单层循环的一次,可以继续下一次
    break退出当前循环
    continue退出本次循环,进入下一次循环
public static void main(String[] args) {
        for(int x = 0;x < 10;x++){
            if(x==3){
                continue;
            }
        System.out.println("HelloWorld");
        }
}
//运行结果(与break对比)
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
3、return:返回
    A:用于结束方法的,后面还会在继续讲解和使用。
    B:一旦遇到return,程序就不会在继续往后执行。
//这个例子解释一下break,continue,return的区别
    public static void main(String[] args) {
        for(int x=0;x<10;x++){
            if(x==2){
                System.out.println("退出");
                break;
                //continue;
                //return;
            }
            System.out.println(x);
        }
        System.out.println("over");
    }
运行结果
break0 1 退出 over
continue0 1 退出 3 4 5 6 7 8 9 over
return0 1 退出

猜你喜欢

转载自blog.csdn.net/oampZuo12345/article/details/48028177