Java修炼之凡界篇 筑基期 第03卷 流程控制 第04话 循环结构

循环结构

while 循环

  • 语法结构:

    while (布尔表达式) {
        // 循环体(循环内容)
    }
    
  • while 循环是最基本的循环

  • 布尔表达式为 true,循环就会一直执行

  • 程序中大多数情况,是需要程序循环到满足条件,都会让程序停下来

  • 极少数部分程序需要一直循环,循环条件一直为 true 会使程序无限循环(死循环),实际开发中,应避免程序陷入死循环,极大程度的会影响程序性能,甚至会造成程序卡死崩溃

  • 程序案例:

    public static void main(String[] args) {
        int i = 0;
        // 当 i 大于100时,结束循环
        while(i <= 100){
            System.out.println(i); // 输出1到100数值
            i = i + 1;
        }
    }
    

do while 循环

  • 语法结构:

    do {
        // 循环体(循环内容)
    } while (布尔表达式);
    
  • do…while 循环与 while 区别:

    • while 先判断后执行,do…while 是先执行后判断
    • do…while 总是会保证循环体被至少执行一次
  • 程序案例:

    public static void main(String[] args) {
        int i = 0;
        // i 不小于等于-100,程序被执行一次
        do {
            System.out.println(i); // 输出一次为0
            i = i + 1;
        } while (i <= -100);
        System.out.println(i); // 输出值1
        int j = 0;
        // 当 j 大于100时,结束循环
        do {
            System.out.println(j); // 输出1到100数值
            j = j + 1;
        } while (j <= 100);
    }
    

for 循环

  • 语法结构:

    for (初始化值; 布尔表达式; 更新值) {
        // 循环体(循环内容)
    }
    
  • Java 提供了循环结构更加简单的 for 循环

  • for 循环是支持迭代的一种通用结构,是最有效、最灵活的循环结构

  • for 循环的执行次数是在执行前就已经进行定义

  • 程序案例:

    public static void main(String[] args) {
        int a = 1;
        for (int i = 0; i <= 100; i++) {
            System.out.println(i);
        }
        // 计算0到100之间的奇数和偶数的和
        int jSum = 0;
        int ouSum = 0;
        for (int i = 0; i <= 100; i++) {
            if(i % 2 != 0){
                jSum = jSum + i;
            } else {
                ouSum = ouSum + i;
            }
        }
        System.out.println("奇数和:" + jSum);
        System.out.println("偶数和:" + ouSum);
        // 用 while 或 for 循环输出1-1000之间能被5整除的数,并且每行输出3个
        // 第一种写法
        int b = 0;
        for (int i = 0; i <= 1000; i++) {
            if(i % 5 == 0){
                b = b + 1;
                if(b == 3){
                    // System.out.println(); 输出语句中有ln的代表换行
                    // System.out.print(); 不换行
                    // \n 也代表换行
                    // \t 代表tab键(制表符)
                    System.out.print(i + "\t");
                    System.out.println();
                    b = 0;
                } else {
                    System.out.print(i + "\t");
                }
            }
        }
        // 第二种写法(推荐这种),学会用数学的思维方式去编程
        for (int i = 0; i <= 1000; i++) {
            if (i % 5 == 0) {
                // System.out.println(); 输出语句中有ln的代表换行
                // System.out.print(); 不换行
                // \n 也代表换行
                // \t 代表tab键(制表符)
                System.out.print(i + "\t");
                // 0除外,每行第三个数总是能被15整除,实现每行输出3个数值
                if (i % (5 * 3) == 0) {
                    // System.out.println("");
                    System.out.print("\n");
                }
            }
        }
        // 打印九九乘法表
        // 根据九九乘法表规律,乘数代表的是第几行,且对应的就有多少列,由此可知第n行的时候就有第n列
        for (int i = 1; i <= 9; i++) { // 行
            for (int j = 1; j <= i; j++) { // 列
                System.out.print(i + " × " + j + " = " + i * j + "\t");
            }
            System.out.print("\n");
        }
    	// --------------------------------------
    	// 控制栏输出打印:
        /**
         1 × 1 = 1
         2 × 1 = 2	2 × 2 = 4
         3 × 1 = 3	3 × 2 = 6	3 × 3 = 9
         4 × 1 = 4	4 × 2 = 8	4 × 3 = 12	4 × 4 = 16
         5 × 1 = 5	5 × 2 = 10	5 × 3 = 15	5 × 4 = 20	5 × 5 = 25
         6 × 1 = 6	6 × 2 = 12	6 × 3 = 18	6 × 4 = 24	6 × 5 = 30	6 × 6 = 36
         7 × 1 = 7	7 × 2 = 14	7 × 3 = 21	7 × 4 = 28	7 × 5 = 35	7 × 6 = 42	7 × 7 = 49
         8 × 1 = 8	8 × 2 = 16	8 × 3 = 24	8 × 4 = 32	8 × 5 = 40	8 × 6 = 48	8 × 7 = 56	8 × 8 = 64
         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
         */
    }
    

增强 for 循环

  • 语法结构:

    for (声明语句 : 表达式) {
    	// 循环体
    }
    
  • JDK5 引入主要用于数组或集合的增强型 for 循环

  • 声明语句:声明新的局部变量,该变量类型必须和数组元素的类型相匹配,其作用域限定在循环体内,其值与次数数组元素值相等

  • 表达式:表达式是要访问的数组名,或是返回值为数组的方法

  • 程序案列:

    public static void main(String[] args) {
        int [] numbers = {1, 2, 3, 4 ,5 ,6};
        // 整型 numbers 数组的长度
        int length = numbers.length;
        for (int i = 0; i < length; i++) {
            // 数组下标序号从0开始
            // 数组取值
            int number = numbers[i];
            System.out.println(number);
        }
        System.out.println("---------------分割线--------------------");
        for (int number : numbers) {
            System.out.println(number);
        }
    	// --------------------------------------
    	// 控制栏输出打印:
        /**
        1
        2
        3
        4
        5
        6
        ---------------分割线--------------------
        1
        2
        3
        4
        5
        6
        */
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫在问

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值