美文网首页
流程控制语句

流程控制语句

作者: Sugarfree_ | 来源:发表于2022-09-24 21:14 被阅读0次

    一、程序的执行流程

    1.顺序结构

    默认,从上往下,从左至右,一条语句一条语句的执行。

    2.选择结构(分支结构)

    if语句
    switch语句

    3.循环结构

    for
    while
    do while

    二、选择结构的语句

    选择结构,也叫做分支结构
    使用场景:当一件事情,有多种可能发生的情况,但是每次只能发生一种情况。最后发生哪种情况根据条件来选择。

    1.if语句

    (1)单分支

    一个条件,一种情况。

    语法:

    if(boolean条件){

    //当条件为true时要执行的语句组。
    

    }

    执行流程:

    先执行条件;

    条件为true,执行语句组,然后结束if。

    条件为false,直接结束if。


    image.png
    System.out.println("begin---");
    
            int   week=7;
            if(week==7){
                System.out.println("明天休息");
            }
    
            System.out.println("end---");
    

    (2)双分支

    一个条件,两种情况
    语法:

    if(boolean条件){

    //当条件为true时要执行的语句组1。
    

    }else{

    //当条件为false时要执行的语句组2。
    

    }

    执行流程:

    先执行条件;

    条件为true,执行语句组1,然后结束if。

    条件为false,执行语句组2,然后结束if。


    image.png
    System.out.println("begin---");
    
            int   week=2;
            if(week==7){
                System.out.println("明天休息");
            }else{
                System.out.println("继续学习");
            }
    
            System.out.println("end---");
    

    (3)多分支

    n-1个条件,n种情况。

    语法:

    if(boolean条件1){

    //当条件为true时要执行的语句组1。
    

    }else if(条件2){

    //当条件2为true时要执行的语句组2。
    

    }else if ....

    ....

    else if(条件n-1){

    //当条件n-1为true时要执行的语句组n-1。
    

    }else{

    //当以上条件都不成立,执行语句组n。
    

    }

    执行流程:

    先执行条件1;

    条件1为true,执行语句组1,然后结束if。

    条件1为false,执行条件2。

    条件2为true,执行语句组2,然后结束if。

    条件2为false,执行条件3。

    .....

    条件n-1为true,执行语句组n-1,然后结束if。

    条件n-1为false,执行语句组n。


    image.png
    System.out.println("begin---");
    
            int   week=7;
    
            if(week==1){
                System.out.println("体能课");
            }else if(week==2){
                System.out.println("舞蹈课");
            }else  if(week==3){
                System.out.println("书法课");
            }else  if(week==4){
                System.out.println("美术课");
            }else  if(week==5){
                System.out.println("篮球课");
            }else  if(week==6){
                System.out.println("英语课+舞蹈课+逻辑思维课");
            }else{
                System.out.println("语言课");
            }
    
            System.out.println("end---");
    

    2.switch语句

    (1)语法:

    switch(表达式){

    case    常量表达式1:
    
                    语句组1;
    
                    [break;]
    
    case    常量表达式2:
    
                    语句组2;
    
                    [break;]
    
    。。。
    
    case    常量表达式n-1:
    
                    语句组n-1;
    
                    [break;]
    
    
    
    default:
    
                语句组n;
    

    }

    强调:switch表达式只能返回byte、short、char、int、String类型。

    (2)执行流程:

    先执行switch的表达式;

    然后执行第一个case。

    如果表达式的结果和常量表达式1相等,那么执行语句组1.

    如果表达式的结果和常量表达式1不相等,执行下一个case。

    。。。

    如果以上都不匹配,执行缺省语句组。


    image.png
    System.out.println("begin--");
            Scanner  sc=new Scanner(System.in);
            int  week=sc.nextInt();
    
            switch (week){
                case   1:
                    System.out.println("今天星期一,我要上学");
                    break;
                case   2:
                    System.out.println("今天星期二,我要打游戏");
                    break;
                case   3:
                    System.out.println("今天星期三,我要上班");
                    break;
                case   4:
                    System.out.println("今天星期四,我要考试");
                    break;
                case   5:
                    System.out.println("今天星期五,我要按摩");
                    break;
                case   6:
                    System.out.println("今天星期六,我要洗脚");
                    break;
                case   7:
                    System.out.println("今天星期日,我要钓鱼");
                    break;
    
                default:
                    System.out.println("你输的星期不对!!");
            }
    
            System.out.println("end----");
    

    (3)关于break的问题

    break作用:结束switch语句。

    如果语句组中没有执行break,那么程序会向下执行下一个语句组,直到遇到break或后面的语句组全部执行完毕,结束switch。

    System.out.println("begin--");
            Scanner  sc=new Scanner(System.in);
            int  week=sc.nextInt();
    
            switch (week){
                case   1:
                    System.out.println("今天星期一,我要上学");
                    break;
                case   2:
                    System.out.println("今天星期二,我要打游戏");
                    break;
                case   3:
                    System.out.println("今天星期三,我要上班");
                    break;
                case   4:
                    System.out.println("今天星期四,我要考试");
                    //break;
                case   5:
                    System.out.println("今天星期五,我要按摩");
                    //break;
                case   6:
                    System.out.println("今天星期六,我要洗脚");
                    //break;
                case   7:
                    System.out.println("今天星期日,我要钓鱼");
                   // break;
    
                default:
                    System.out.println("你输的星期对!!");
            }
    
            System.out.println("end----");
    

    (4)switch使用场景

    只能用于条件中的值是可以枚举的时候。

    总结:如果匹配成功后 但没有break 那就没有结束 但是不会再比对case条件 会执行下个case的语句 直到遇到break或者代码结束。

    三、循环结构的语句

    使用场景:
    重复的操作,需要执行多遍。

    1.for

    语法:

    for(初始化表达式;boolean条件;迭代语句){

    //循环体:定义重复的操作,只需定义一遍。
    

    }

    执行流程:

    先执行初始化表达式;

    然后执行boolean条件;

    如果条件为true,执行循环体,然后执行迭代语句;

    然后执行boolean条件;

    如果条件为true,执行循环体,然后执行迭代语句;

    。。。。

    直到boolean条件为false,结束for。


    image.png
     System.out.println("begin---");
    
            for(int  i=1;i<=100;i++){
                System.out.println("我再也不迟到了"+i);
            }
    
            System.out.println("end----");
    

    2.while

    语法:

    while(boolean条件){

    //循环体
    

    }

    执行流程:

    先执行条件;

    条件为true,执行循环体,然后在执行条件。。。。。

    一直到条件为false,结束while。


    image.png
    System.out.println("begin---");
    
            int  i=1;
            while(i<=100) {
                System.out.println("我再也不迟到了" + i);
                i++;
            }
    
            System.out.println("end----");
    

    3.do while

    语法:

    do{

    //循环体
    

    }while(boolean条件);

    执行流程:

    先执行循环体;

    然后执行条件,条件为true,在执行循环体,然后在执行条件。。。。。

    一直到条件为false,结束do while。


    image.png

    注意:do while 至少执行一次。

            如果大于0次的情况,(前提:条件和循环体相同)三种循环语句执行的结果是一样的。
    
    System.out.println("begin---");
    
            int  i=1;
    
            do{
                System.out.println("我再也不迟到了" + i);
                i++;
            }
            while(i<=100);
    
            System.out.println("end----");
    

    四、流程跳转语句

    1.break

    (1)用在switch语句中

    表示结束switch语句

    (2)用在循环语句中

    结束后面的所有循环

    for (int i = 0; i < 10; i++) {
        if(i==5){
            break;
        }
    
        System.out.println("i  love  java"+i);
    }
    

    2.continue

    只能用在循环体中

    结束本次循环,然后进入下一次循环。

    for (int i = 0; i < 10; i++) {
        if(i==5){
            continue;
        }
    
        System.out.println("i  love  java"+i);
    }
    

    五、多重循环

    打印九九乘法表

    (1)打印九行

    (2)每一行:打n个

    //打九行
    for (int i = 1; i <=9 ; i++) {
        //打印第i行
        //打印i个
        for (int j = 1; j <=i ; j++) {
            System.out.print(j+"*"+i+"="+(j*i) +"  ");
        }
        //换行
        System.out.println();
    }
    

    相关文章

      网友评论

          本文标题:流程控制语句

          本文链接:https://www.haomeiwen.com/subject/hzooortx.html