Java基础系列9-流程语句之循环结构

x33g5p2x  于2021-12-18 转载在 其他  
字(4.1k)|赞(0)|评价(0)|浏览(509)

一.循环结构

1.1 for循环

执行流程:

  1. 执行初始化语句
  2. 执行判断条件语句,看其结果是true还是false
    1)如果是false,循环结束。
    2)如果是true,继续执行。
  3. 执行循环体语句
  4. 执行控制条件语句
  5. 回到2继续

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

  1. for(初始化语句;判断条件语句;控制条件语句) {
  2. 循环体语句;
  3. }
  4. //实例
  5. for (int x = 1; x <= 5; x++) {
  6. System.out.println("HelloWorld");
  7. }
  8. for (int i = 0; i < collection.size(); i++) {
  9. }

执行流程图:

arraylist可以用for遍历;
collection没有索引,不能用for循环;

代码:

  1. package Java_study;
  2. public class for1 {
  3. public static void main(String[] args) {
  4. //for循环1
  5. for (int x = 1; x <= 5; x++) {
  6. System.out.println("HelloWorld");
  7. }
  8. System.out.println("======");
  9. //for循环2 输出1-5
  10. for (int i = 1; i <= 5 ; i++) {
  11. System.out.println("i:" + i);
  12. }
  13. System.out.println("======");
  14. //for循环3 输出5-1
  15. for (int i = 5; i > 0; i--) {
  16. System.out.println("i:" + i) ;
  17. }
  18. System.out.println("======");
  19. //for循环4 求和
  20. int sum = 0;
  21. for (int i = 1; i <= 5; i++) {
  22. sum += i;
  23. }
  24. System.out.println("结果为:" + sum);
  25. }
  26. }

测试记录:

  1. HelloWorld
  2. HelloWorld
  3. HelloWorld
  4. HelloWorld
  5. HelloWorld
  6. ======
  7. i:1
  8. i:2
  9. i:3
  10. i:4
  11. i:5
  12. ======
  13. i:5
  14. i:4
  15. i:3
  16. i:2
  17. i:1
  18. ======
  19. 结果为:15

1.2 while循环

执行流程:

  1. 执行初始化语句
  2. 执行判断条件语句,看其结果是true还是false
    1)如果是false,循环结束。
    2)如果是true,继续执行。
  3. 执行循环体语句
  4. 执行控制条件语句
  5. 回到B继续

循环结构 while语句格式:

  1. //基本格式
  2. while(判断条件语句) {
  3. 循环体语句;
  4. }
  5. //扩展格式
  6. 初始化语句;
  7. while(判断条件语句) {
  8. 循环体语句;
  9. 控制条件语句;
  10. }
  11. //实例
  12. while(x<=5) {
  13. System.out.println("HelloWorld");
  14. x++;
  15. }

执行流程图:

代码:

  1. package Java_study;
  2. public class while1 {
  3. public static void main(String[] args) {
  4. //while循环1
  5. int x = 1;
  6. while (x <= 5) {
  7. System.out.println("HelloWorld");
  8. x++;
  9. }
  10. //while循环2 求和
  11. int sum = 0;
  12. int i = 1;
  13. while (i <= 100) {
  14. //累加即
  15. sum += i;
  16. i++;
  17. }
  18. //输出结果
  19. System.out.println("sum:" + sum);
  20. }
  21. }

测试记录:

  1. HelloWorld
  2. HelloWorld
  3. HelloWorld
  4. HelloWorld
  5. HelloWorld
  6. sum:5050

1.3 do while循环

执行流程:

  1. 执行初始化语句
  2. 执行循环体语句
  3. 执行控制条件语句
  4. 执行判断条件语句,看其结果是true还是false
    1)如果是false,循环结束。
    2)如果是true,继续执行。
  5. 回到2继续

循环结构 do while语句格式:

  1. //基本格式
  2. do {
  3. 循环体语句;
  4. }while(判断条件语句);
  5. //扩展格式
  6. 初始化语句;
  7. do {
  8. 循环体语句;
  9. 控制条件语句;
  10. } while(判断条件语句);
  11. //实例
  12. do {
  13. System.out.println("HelloWorld");
  14. x++;
  15. }while(x<=5);

执行流程图:

代码:

  1. package Java_study;
  2. public class dowhile1 {
  3. public static void main(String[] args) {
  4. int x = 1;
  5. do {
  6. System.out.println("HelloWorld");
  7. x++;
  8. } while (x <= 5);
  9. }
  10. }

测试记录:

  1. HelloWorld
  2. HelloWorld
  3. HelloWorld
  4. HelloWorld
  5. HelloWorld

1.4 三种循环的区别

虽然三种循环结构【for、while、do…while】可以完成同样的功能,但是还是有区别:

  1. do…while循环会执行至少一次循环体。
  2. for循环和while循环只有在条件成立时才会去执行循环体

for循环语句和while循环语句的区别:

  1. for循环:控制条件语句变量,在for循环结束后,不可再访问。(for循环结束,该变量就从内存中消失,能够提高内存使用效率)
  2. while循环:控制条件语句变量,在while循环结束后,可以继续访问。

1.5 死循环

两种最简单的死循环

  1. while
  1. int a = 1;
  2. while (true) {
  3. System.out.println(a++);
  4. }
  1. for
  1. int a = 1;
  2. for (; ; ) {
  3. System.out.println(a--);
  4. }

循环中需要注意通过控制条件语句来控制循环变量,否则容易陷入死循环

1.6 foreach 循环 / 增强for循环

foreach是一种遍历形式, 可以遍历集合或者数组。
foreach遍历集合实际上是迭代器遍历的简化写法。

  1. 增强型for循环定义如下:
  2. for(ElementType element: arrayName){};
  3. 上述for循环可被读为:for each element in arrayName do {...}
  4. 相对于for(;;)而言 增强for循环有两个好处:
  5. 1.写起来简单
  6. 2.遍历集合、容器简单
  7. //实例
  8. for (int i : arr) {
  9. System.out.println(i);
  10. }

二.嵌套循环

在一个循环体语句中又包含另一个循环语句,称为循环嵌套。
实际生产环境会有非常多的这种循环嵌套。

代码:

  1. package Java_study;
  2. public class qiantaoxunhuan1 {
  3. public static void main(String[] args) {
  4. //嵌套循环1-输出4行5列*
  5. for (int i = 0; i < 4; i++) {
  6. for (int j = 0; j < 5; j++) {
  7. System.out.print("* ");
  8. }
  9. System.out.println();
  10. }
  11. //嵌套循环2-输出九九乘法表
  12. for (int i = 0; i <= 9; i++) {
  13. for (int j = 1; j <= i; j++) {
  14. System.out.print(i + "*" + j + "=" + i * j + "\t");
  15. }
  16. System.out.println();
  17. }
  18. }
  19. }

测试记录:

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

三. 控制循环语句

3.1 跳转控制语句break

break用于当满足某个条件的时候,跳出循环。
break即可以跳出单层循环,也可以跳出多层循环。

代码:

  1. package Java_study;
  2. public class break1 {
  3. public static void main(String[] args) {
  4. //给循环打标签
  5. wc:
  6. for (int i = 1; i <= 3; i++) {
  7. nc:
  8. for (int j = 1; j <= 3; j++) {
  9. if (j == 3) {
  10. // 跳出外层循环wc
  11. break wc;
  12. }
  13. System.out.print("*");
  14. }
  15. System.out.println();
  16. }
  17. System.out.println();
  18. System.out.println("==========");
  19. wc:
  20. for (int i = 1; i <= 3; i++) {
  21. nc:
  22. for (int j = 1; j <= 3; j++) {
  23. if (j == 3) {
  24. // 跳出内层循环nc
  25. break nc;
  26. }
  27. System.out.print("*");
  28. }
  29. System.out.println();
  30. }
  31. }
  32. }

测试记录:

  1. **
  2. ==========
  3. **
  4. **
  5. **

3.2 跳转控制语句continue

与break是退出当前循环不同,continue 退出本次循环。

代码:

  1. package Java_study;
  2. public class continue1 {
  3. public static void main(String[] args) {
  4. for (int i = 1; i <= 5; i++) {
  5. if (i == 3) {
  6. continue;
  7. }
  8. System.out.println("HelloWorld" + i);
  9. }
  10. }
  11. }

测试记录:

  1. HelloWorld1
  2. HelloWorld2
  3. HelloWorld4
  4. HelloWorld5

参考:

  1. https://blog.csdn.net/qq_43529621/article/details/113250176

相关文章