zoukankan      html  css  js  c++  java
  • 04_循环补充和方法

    Day04补充笔记

    课程内容

    1、循环内容的补充

    2、方法

    循环内容补充

    嵌套循环

    1、在外层循环中,循环体又是一个比较复杂的操作,所以外层循环里面又包含了循环,被包含的循环,就称为内层循环。

    2、格式:

            for (初始化表达式1; 循环条件1;初始化变量1的自增) {

                    for(初始化表达式2; 循环条件2;初始化变量2的自增) {

                            循环体;

    }

    }

    3、执行流程:

            1、初始化表达式1

            2、计算循环条件1,如果为false,外层循环就结束了;如果为true,执行第3步

            3、初始化表达式2

            4、计算循环条件2,如果为false,内层循环就结束了,执行初始化变量1的自增,回到第2步;如果为true,执行第5步

            5、执行内层循环的循环体语句,执行初始化变量2的自增,回到第4步

    代码示例

    class Demo01_嵌套循环 {

             public static void main(String[] args) {

                      for(int i = 1; i <= 3; i++) {

                               for (int j = 1; j <= 5; j++) {

                                        System.out.println("i=" + i + ", j=" + j);

                               }

                      }

             }

    }

    练习

    打印99乘法表

    代码示例

    class Demo02_99乘法表 {

             /*

             1*1=1

             2*1=2       2*2=4

             3*1=3       3*2=6       3*3=9

             .......

             9*1=9       9*2=18     ............       9*9=81

     

     

             *

             **

             ***

             ****

            

             */

             public static void main(String[] args) {

                      for (int i = 1; i <= 20; i++) {

                               //打印i个星星

                               for (int j = 1; j <= i; j++) {

                                        System.out.print(i + "*" + j + "=" + i * j + " ");

                               }

                               //换行

                               System.out.println();

                      }

             }

    }

    while循环

    1、格式:

            初始化语句;

            while(循环条件) {

                    循环体;

                    初始化变量的自增;

    }

    2、执行流程:

            1、初始化语句;

            2、判断循环条件,如果为false,就while语句结束

            3、如果循环条件为true,就执行循环体,执行初始化变量的自增,回到第2步

    3、注意事项:

            1、循环条件之后,左大括号之前,不要加分号

            2、循环条件必须是计算结果为boolean类型的表达式

            3、初始化变量的自增:很容易忘记,需要注意

    代码示例

    class Demo03_while语句 {

             public static void main(String[] args) {

                      //初始化语句

                      int i = 1;

                      //while语句,控制循环次数为5

                      while(i <= 5) {

                               System.out.println("Hello World!");

                               //初始化变量的自增

                               i++;

                      }

             }

    }

    练习

    使用while语句,统计水仙花数的个数

    代码示例

    class Demo04_while语句练习水仙花数 {

             //使用while语句,统计水仙花数个数

             public static void main(String[] args) {

                      //初始化语句

                      int num = 100;

                      //计数器

                      int count = 0;

                      while (num <= 999) {

                               int ge = num % 10;

                               int shi = num / 10 % 10;

                               int bai = num / 100;

                               if (ge*ge*ge + shi*shi*shi + bai*bai*bai == num) {

                                        count++;

                               }

                               //初始化变量的自增

                               num++;

                      }

                      System.out.println(count);

             }

    }

    do...while循环

    1、格式:

            初始化语句;

            do {

                    循环体语句;

                    初始化变量的自增;

    } while(循环条件表达式);

    2、执行流程:

            1、初始化语句

            2、循环体语句、初始化变量的自增

            3、计算循环条件表达式,如果为false,do...while语句就结束了;如果为true,回到第2步

    3、注意事项:

            1、无论循环条件表达式计算结果如何,都至少会执行一次循环体语句(循环条件,只能控制从第二次开始的循环体)

            2、最后又一个分号,用于表示语句结束

    代码示例

    class Demo05_dowhile {

             public static void main(String[] args) {

                      int i = 1;

                      do {

                               System.out.println("Hello World!");

                               i++;

                      } while(i <= 5);

     

             }

    }

    三种循环语句的比较

    1、do...while循环和其他两种循环的区别

            do...while至少会执行一次循环体

            其他两种循环,如果循环条件第一次计算就为false,循环体语句就一次都执行不了

    2、while语句和for语句的区别:

            1、代码层面:声明的初始化变量的作用域,while语句的初始化变量,声明在while语句的外面,所以在while语句结束之后,变量可以继续使用;for语句初始化变量声明在for语句的里面,所以for语句结束之后,这个变量就消失了。

            2、设计层面:for语句一般用在循环次数比较明确的场景下;循环范围比较明确,次数不是很明确的时候,使用while语句相对多。

    代码示例

    class Demo06_三种循环的特点 {

             public static void main(String[] args) {

                      int x;

                      for (int i = 1; i <= 100; i++) {

                               x = i;

                      }

                      //System.out.println(x);编译报错,循环体可能一次都不执行

     

     

                      int y;

                      int j = 1;

                      do {

                               y = j;

                               j++;

                      } while (j <= 100);

                      System.out.println(y);

     

     

     

                      for(int i = 1; i <= 5; i++) {

                               System.out.println("HelloWorld");

                      }

                      //System.out.println(i);编译报错,i的作用域已经结束

     

     

                      int i = 1;

                      while(i <= 5) {

                               System.out.println("HelloWorld");

                               i++;

                      }

                      System.out.println(i);

             }

    }

    死循环

    1、定义:无限循环,循环体可以无限的循环下去,永不结束。

    2、格式:

            1、for语句的死循环:

                    for (;;) {

             循环体语句;

    }

    2、while语句的死循环【常用】

            while(true) {

                    循环体语句;

    }

    3、作用:

            1、有时候,在写代码编译阶段,不太清楚循环什么时候结束,只有到了运行阶段,才能清楚什么时候会结束,所以只能写成死循环,还有一些循环跳转语句,可以在循环体内部结束当前循环。

            2、在设计服务端程序时,就希望能够永远给用户提供服务,无论用户访问多少次服务,都能够运行正常的代码逻辑,所以在服务端开发中,就是使用死循环来完成这样的需求。

    代码示例

    import java.util.Scanner;

    class Demo07_死循环 {

             public static void main(String[] args) {

                      for (;;) {

                               System.out.println("Hello World!");

                      }

     

                      //System.out.println("执行结束");编译报错,无法访问该语句

     

     

                      while(true) {

                               System.out.println("HelloWorld");

                      }

                      //System.out.println("执行结束");//无法访问的语句,所以编译报错

     

                      //键盘录入一个数字,如果为0,那么就结束录入

                      Scanner sc = new Scanner(System.in);

                      System.out.println("请录入若干数字,如果录入0表示录入结束");

                      while(true) {

                               int x = sc.nextInt();

                               if (x == 0) {

                                        System.out.println("谢谢使用本系统");

                                        break;

                               }

                               System.out.println("您录入的数据为:" + x);

                      }

             }

    }

    跳转语句

    1、在循环过程中,需要在循环体中,来控制循环的结束、跳转

    2、continue:继续

            结束本次循环,继续下次循环

    3、break:结束、破坏

            结束当前循环

    4、return:返回,返回当前方法(结束当前方法)

            结束当前方法

    5、System.exit(0):结束虚拟机

    代码示例

    class Demo08_跳转语句 {

             public static void main(String[] args) {

            

                      //打印7次ujiuye

                      for (int i = 1; i <= 10; i++) {

                               if ( i % 3 == 0) {

                                        continue;

                               }

                               System.out.println("ujiuye");

                      }

                     

                      //打印2次ujiuye,打印欢迎下次光临

                      for (int i = 1; i <= 10; i++) {

                               if ( i % 3 == 0) {

                                        break;

                               }

                               System.out.println("ujiuye");

                      }

                      System.out.println("欢迎下次光临");

                     

                     

                      //输出两次ujiuye,不输出欢迎下次光临

                      for (int i = 1; i <= 10; i++) {

                               if(i % 3 == 0) {

                                        return;

                               }

                               System.out.println("ujiuye");

                      }

                      System.out.println("欢迎下次光临");

             }

    }

  • 相关阅读:
    15. DML, DDL, LOGON 触发器
    5. 跟踪标记 (Trace Flag) 834, 845 对内存页行为的影响
    4. 跟踪标记 (Trace Flag) 610 对索引组织表(IOT)最小化日志
    14. 类似正则表达式的字符处理问题
    01. SELECT显示和PRINT打印超长的字符
    3. 跟踪标记 (Trace Flag) 1204, 1222 抓取死锁信息
    2. 跟踪标记 (Trace Flag) 3604, 3605 输出DBCC命令结果
    1. 跟踪标记 (Trace Flag) 1117, 1118 文件增长及空间分配方式
    0. 跟踪标记 (Trace Flag) 简介
    SpringBoot + Redis + Shiro 实现权限管理(转)
  • 原文地址:https://www.cnblogs.com/man-tou/p/10635883.html
Copyright © 2011-2022 走看看