• 循环结构:for循环,while循环,do-while,死循环



    快捷键 ctrl+alt+t

    for循环

    在这里插入图片描述

    看循环执行多少次,就看有效数字有几个
    快捷键 fori

    示例代码

    package com.zhang.loop;
    
    public class ForDemo1 {
        public static void main(String[] args) {
            //掌握for循环的书写格式,理解执行流程
            //需求:打印多行 hello world
            /*
            * 流程:
            *   首先会执行初始化语句 int i = 0;
            *   i = 0,判断循环条件 0 < 3,返回true,计算机会进入到循环中执行输出第一行Hello world,接着执行迭代语句i++;
            *   i = 1,判断循环条件 1 < 3,返回true,计算机会进入到循环中执行输出第一行Hello world,接着执行迭代语句i++;
            *   i = 2,判断循环条件 2 < 3,返回true,计算机会进入到循环中执行输出第一行Hello world,接着执行迭代语句i++;
            *   i = 3,判断循环条件 3 < 3,返回false,循环立即结束。
            *
            * */
            for (int i = 0; i < 5; i++) {//5次
                System.out.println("Hello world");
            }
    
    
    
            System.out.println("-----------------------------------");
            for (int i = 1; i <= 5 ; i++) {//5次
                System.out.println("hello world2");
            }
    
    
            System.out.println("-----------------------------");
            for (int i = 1; i <= 10 ; i += 2 ) {//5次
                //i  = 1 3 5 7 9
                System.out.println("hello~~~");
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    在这里插入图片描述

    for案例:累加

    package com.zhang.loop;
    
    public class ForDemo2 {
        public static void main(String[] args) {
            //目标:使用for批量产生数据
            //累加
            //需求1: 产生1~100的数据
            for (int i = 1; i <= 100 ; i++) {
                System.out.println(i);
            }
            System.out.println("----------------------------------");
    
            //需求2:1~100求和
            int sum = 0;
            for (int i = 1; i <= 100 ; i++) {
                sum += i;
            }
            System.out.println(sum);
    
            System.out.println("------------------------------------");
            //需求3:1 ~ 100 的奇数和、偶数和
            //法一:(更推荐,因为能直接得到13579)
            int sum2 = 0;
            for (int i = 1; i <= 100 ; i += 2) {
                sum2 += i;
            }
            System.out.println("奇数和是"+sum2);
    
    
            int sum3 = 0;
            for (int i = 2; i <= 100 ; i += 2) {
                sum3 += i;
            }
            System.out.println("偶数和是"+sum3);
    
    
            System.out.println();
            //法二:先找出1~100所有数字,再筛选数据
            int sum4 = 0;
            for (int i = 1; i <= 100; i++) {
                if(i % 2 == 1){
                    sum4 += i;
                }
            }
            System.out.println("奇数和是"+sum4);
    
    
            int sum5 = 0;
            for (int i = 1; i <= 100; i++) {
                if(i % 2 == 0){
                    sum5 += i;
                }
            }
            System.out.println("偶数和是"+sum5);
    
    
    
            //如果是累乘,初始化  int rs = 1;
        }
    }
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62

    在这里插入图片描述

    for循环在开发中的常见应用场景

    • 减少代码的重复编写(多行输出只需要一行),灵活的控制程序的执行(更改次数)
    • 批量产生数据(产生1 - 100)

    while

    • 格式:
      在这里插入图片描述

    代码演示:

    package com.zhang.loop;
    
    public class WhileDemo3 {
        public static void main(String[] args) {
            //目标:掌握while循环的书写格式,以及理解其执行流程
            //需求:打印多行hello world
            int i = 1;
            while (i < 6){
                System.out.println("Hello World!!");
                //迭代语句
                i++;
            }
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    运行结果:
    在这里插入图片描述

    while循环案例:

    在这里插入图片描述
    代码演示:

    package com.zhang.loop;
    
    public class WhileTest4 {
       public static void main(String[] args) {
           //纸张折叠珠穆朗玛峰的高度
    
           double peakHight = 8848860;//山峰高度
           double paperHeight = 0.1;//纸张厚度
           int count = 0;//需要折叠的次数
    
           while(paperHeight < peakHight){
               paperHeight *= 2;
               count++;
           }
           System.out.println(count);
           System.out.println(paperHeight);
    
       }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    运行结果:
    在这里插入图片描述

    for和while的区别:

    在这里插入图片描述

    do-while

    在这里插入图片描述
    代码演示:

    package com.zhang.loop;
    
    public class DoWhileDemo5 {
        public static void main(String[] args) {
            //目标:掌握do-while循环的书写格式,执行流程,特点和应用场景
            //需求:打印多行 hello world
            int i = 0;
            do {
                System.out.println("hello world!");
                i++;
            }while(i < 3);
    
            //特点:先执行后判断
            int j = 0;
            do {
                System.out.println("hello1");
            }while(false);
    
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    运行结果:
    在这里插入图片描述

    三种循环的区别小结

    在这里插入图片描述
    其他区别我们再次用代码演示:
    在这里插入图片描述

    package com.zhang.loop;
    
    public class DoWhileDemo5 {
        public static void main(String[] args) {
            //目标:掌握do-while循环的书写格式,执行流程,特点和应用场景
            //需求:打印多行 hello world
            int i = 0;
            do {
                System.out.println("hello world!");
                i++;
            }while(i < 3);
    
            //特点:先执行后判断
            int j = 0;
            do {
                System.out.println("hello1");
            }while(false);
    
    
            System.out.println("-----------------------------------");
            //以下是其他区别的演示
            for (int m = 1;m <= 3;m++){
                System.out.println("hi");
            }
    //        System.out.println(m);
    
            int n = 0;
            while (n < 3){
                System.out.println("hi~~~");
                n++;
            }
            System.out.println(n);
        }
    }
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    运行结果:
    在这里插入图片描述

    死循环

    在这里插入图片描述

    注意:
    for( ; ; )
    第一个:
    在这里插入图片描述
    第二个:
    在这里插入图片描述
    将上面for死循环注释掉,即可运行
    在这里插入图片描述

    代码演示:

    package com.zhang.loop;
    
    public class EndlessLoopDemo6 {
        public static void main(String[] args) {
      /*      for(;;){
                System.out.println("Hello World");
            }
    */
    /*        //经典写法:
            while(true){
                System.out.println("hi~~~~~~");
            }*/
    
            do{
                System.out.println("hello!!!");
            }while(true);
    
    
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    运行结果:
    在这里插入图片描述

  • 相关阅读:
    Java中OutputStream.flush()具有什么功能呢?
    STM32的M4内核在keil上面float访问就hard_fault原因
    Pandas数据分析:快速图表可视化各类操作详解+实例代码(一)
    什么是RFP?什么又是CFP?两者的含金量该如何看?
    hive解析json数据
    PyQT动态加载ui文件时,如何继承QMainWindow类
    Cookie注入和X-Forwarded-For注入
    MyBatis学习:mapper.xml文件中传参时,标签使用javaType和jdbcType属性
    weblogic/CVE-2018-2894文件上传漏洞复现
    Symfony 上传文件
  • 原文地址:https://blog.csdn.net/m0_75257168/article/details/136100784