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 + "\t");

                           }

                           //换行

                           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("欢迎下次光临");

         }

}

猜你喜欢

转载自www.cnblogs.com/man-tou/p/10635883.html
04_