Java学习day04笔记-包_循环结构

时间:2023-02-25 19:18:45
    0.包: 
         * 概述: 
             * 其实就是文件夹, 用来区分重名文件的.
         * 格式: 
             * package 包名1.包名2.包名3...;
             
         * 包的命名规则:
             * 包名全部小写, 多级包之间用.隔开, 包名一般是公司的域名反写.
                com.项目名.功能名



    1.循环
    概述: 一件事情反复不停的做就叫做循环

    A:循环结构的分类
        * while,do...while ,for,增强 for 循环

    1) while 循环 
        语法:
            初始化语句;
             while(判断条件语句) {
                    循环体语句;
                    控制条件语句;
              }

        B:执行流程:
            * a:执行初始化语句
            * b:执行判断条件语句,看其返回值是true还是false
                * 如果是true,就继续执行
                * 如果是false,就结束循环
            * c:执行循环体语句;
            * d:执行控制条件语句
            * e:回到B继续。


    例子:
            int i = 0; ①        //初始化条件
            while(i < 10) { ②  //判断条件
                System.out.println(i); ④    //循环体
                i++;③       //控制条件
            }
        执行顺序:
            第一次:  ①,  ②, ④, ③
            第二次:  ②, ④, ③
            第三次:  ②, ④, ③
            ......
            最后一次:  ②  //条件满足就执行循环体,不满足就结束循环
            //判断条件永远比 控制条件多执行一次.



    练习:
        简单版:
            使用while循环,打印10次我要来黑马学习

        进阶版:
            让用户输入密码88888,如果输入错误就重新输入,直到输入正确为止

            请打印 1-100 之间可以被 8 整除的数


    2) do...while   循环

        语句的格式:

            do {
                循环体语句;
            }while(判断条件语句);
            
            
        完整格式;
            初始化语句;
            do {
                循环体语句;
                控制条件语句;
            }while(判断条件语句);

         B:执行流程:
            * a:执行初始化语句
            * b:执行循环体语句;
            * c:执行控制条件语句
            * d:执行判断条件语句,看其返回值是true还是false
                * 如果是true,就继续执行
                * 如果是false,就结束循环
            * e:回到b继续。

        例子:
            int i = 0; ①        //初始化条件
            do{ ②  //判断条件
                System.out.println(i); ④    //循环体
                i++;③       //控制条件
            }while(i < 10)


            int i = 0; ①        //初始化条件
            while(i < 10) { ②  //判断条件
                System.out.println(i); ④    //循环体
                i++;③       //控制条件
            }

             初始化语句;
             while(判断条件语句) {
                    循环体语句;
                    控制条件语句;
              }



    3) for 循环

         B:循环结构for语句的格式:

            for(初始化表达式;条件表达式;循环后的操作表达式) {
                循环体;
            }
                //变量作用域在for里面的话,那这个变量只在for里面有效,for语句执行完毕后,该变量在内存中被释放。
                //条件表达式一定要是满足条件的表达式。
                //当多表达式出现的时候,用“,”隔开
                //for(;;){}  无限循环的最简单表现形式
                //累加思想:通过变量记录住循环操作后的结果。
                //计数器思想:通过一个变量记录住数据的状态变化,也许通过循环完成。
         C执行流程:
            * a:执行初始化表达式
            * b:执行判断条件语句,看其返回值是true还是false
                * 如果是true,就继续执行
                * 如果是false,就结束循环
            * c:执行循环体语句;
            * d:执行循环后的操作表达式
            * e:回到B继续。

        例子:
                 ①      ②    ③
            for(int i=0; i<10; i++) {   //这个循环的作用是: 打印0-9之间的数字
                ④
                System.out.println(i);  //这是循环体
            }
            执行顺序:
                第一次:  ①,  ②, ④, ③
                第二次:  ②, ④, ③
                第三次:  ②, ④, ③
                ......
                最后一次:  ②  //条件满足就执行循环体,不满足就结束循环


    4) 增强for循环

        格式:
            for(数据类型 变量名 : 要遍历的集合或者数组) {
                //循环体

            }





    死循环:无法靠自身的控制终止的循环  判断条件永远为真
    常见的死循环:
        for(;;){
            System.out.println("死循环");
        }

        while(true){

            System.out.println("死循环");
        }


    break:结束当前循环
    continue:跳过本次循环,执行下一次循环



    双重for循环
        // 外层循环控制行,内层循环控制列
        // 外层循环一次,内层循环所有次


    打印图形:
    ******
    ******
    ******
    ******



    *
    **
    ***
    ****
    *****
    ******


    ******
    *****
    ****
    ***
    **
    *


    ******
     *****
      ****
       ***
        **
         *


    打印99乘法表
    1*1=1   
    1*2=2   2*2=4   
    1*3=3   2*3=6   3*3=9   
    1*4=4   2*4=8   3*4=12  4*4=16  
    1*5=5   2*5=10  3*5=15  4*5=20  5*5=25  
    1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  
    1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  
    1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  
    1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81



    1x1=1   
    1x1=1   1x1=1   
    1x1=1   1x1=1   1x1=1   
    1x1=1   1x1=1   1x1=1   1x1=1   
    1x1=1   1x1=1   1x1=1   1x1=1   1x1=1   
    1x1=1   1x1=1   1x1=1   1x1=1   1x1=1   1x1=1   
    1x1=1   1x1=1   1x1=1   1x1=1   1x1=1   1x1=1   1x1=1   
    1x1=1   1x1=1   1x1=1   1x1=1   1x1=1   1x1=1   1x1=1   1x1=1   
    1x1=1   1x1=1   1x1=1   1x1=1   1x1=1   1x1=1   1x1=1   1x1=1   1x1=1   


    *
    **
    ***
    ****
    *****
    ******
    *******
    ********
    *********