zoukankan      html  css  js  c++  java
  • Java学习笔记八:Java的流程控制语句之循环语句

     

    Java的流程控制语句之循环语句

     

    一:Java循环语句之while;

      生活中,有些时候为了完成任务,需要重复的进行某些动作。如参加 10000 米长跑,需要绕 400 米的赛道反复的跑 25 圈。在 Java 中实现功能时,也经常需要重复执行某些代码,例如,我们为了表示“浓烈的爱”,希望输出 1000 行“我爱你!”。显然,此时重复敲 1000 遍输出语句是不明智的,循环语句便是明智之举/

      Java 常用的 3 种循环: while 、 do...while 、 for

    语法:

    执行过程:

    < 1 >、 判断 while 后面的条件是否成立( true / false )

    < 2 >、 当条件成立时,执行循环内的操作代码 ,然后重复执行< 1 >、< 2 >, 直到循环条件不成立为止

    特点:先判断,后执行

     如:

    代码如下:

    public class HelloWorld {
        public static void main(String []args) {
            
        int i = 1;
        while(i<=1000){
            System.out.println("我爱你!");
            i++;
        }
       
       }
    }

    运行结果为:

    二:Java循环语句之do...while;

      do...while 循环与 while 循环语法有些类似,但执行过程差别比较大。

    语法:

    执行过程:

    <1>、 先执行一遍循环操作,然后判断循环条件是否成立

    <2>、 如果条件成立,继续执行< 1 > 、< 2 >,直到循环条件不成立为止

    特点: 先执行,后判断

    由此可见,do...while 语句保证循环至少被执行一次!

    例如,依然输出 1000 遍“我爱你”,使用 do...while 的实现代码为:

    代码如下:

    public class HelloWorld {
        public static void main(String []args) {
            
        int i = 1;
        do{
            System.out.println("我爱你!");
            i++;
        }
        while(i<=1000);
       
       }
    }

    运行结果为:

    三:Java循环语句之for;

      Java 的循环结构中除了 while 和 do...while 外,还有 for 循环,三种循环可以相互替换。

    语法: 

    执行过程:

    1. 执行循环变量初始化部分,设置循环的初始状态,此部分在整个循环中只执行一次
    2. 进行循环条件的判断,如果条件为 true ,则执行循环体内代码;如果为 false ,则直接退出循环
    3. 执行循环变量变化部分,改变循环变量的值,以便进行下一次条件判断
    4. 依次重新执行2.3.4,直到退出循环

    特点:相比 while 和 do...while 语句结构更加简洁易读

    例如,输出 1000 遍“我爱你!”,使用 for 的实现代码为:

    代码如下:

    public class HelloWorld {
        public static void main(String []args) {
       
        for(int i=1;i<=1000;i++){
           System.out.println("我爱你!");
       }
       
       }
    }

    运行结果为:

    注:

    1、 for 关键字后面括号中的三个表达式必须用 “;” 隔开,三个表达式都可以省略,但 “;” 不能省略。

        a. 省略“循环变量初始化”,可以在 for 语句之前由赋值语句进行变量初始化操作,如:

    代码如下:

    public class HelloWorld {
        public static void main(String []args) {
       
        int i=0;//循环语句之前对变量初始化
        for(;i<=1000;i++){
           System.out.println("我爱你!");
       }
       
       }
    }

     b. 省略“循环条件”,可能会造成循环将一直执行下去,也就是我们常说的“死循环”现象,如:

    代码如下:

    public class HelloWorld {
        public static void main(String []args) {
       
        for(int i=0;;i++){
           System.out.println("我爱你!");
       }
       
       }
    }

    在编程过程中要避免“死循环”的出现,因此,对于上面的代码可以在循环体中使用 break 强制跳出循环(关于 break 的用法会在后面介绍)。

        c. 省略“循环变量变化”,可以在循环体中进行循环变量的变化,如:

    代码如下:

    public class HelloWorld {
        public static void main(String []args) {
       
        for(int i=0;i<=1000;){
           System.out.println("我爱你!");
               i++;
       }
       
       }
    }

    2、 for 循环变量初始化和循环变量变化部分,可以是使用 “,” 同时初始化或改变多个循环变量的值,如:

     

    代码如下:

    public class HelloWorld {
        public static void main(String []args) {
       
        for(int i=1,j=5;i<=5;i++,j--){
           System.out.println(i+"+"+j+"="+(i+j));
       }
       
       }
    }

    代码中,初始化变量部分同时对两个变量 i 和 j 赋初值,循环变量变化部分也同时对两个变量进行变化,运行结果:

    3、 循环条件部分可以使用逻辑运算符组合的表达式,表示复杂判断条件,但一定注意运算的优先级,如:

    代码如下:

    public class HelloWorld {
        public static void main(String []args) {
       
        for(int i=1;i<10&&i!=5;i++){
           System.out.println(i);
       }
       
       }
    }

    代码中,必须同时满足变量 i 小于 10 ,并且 i 不等于 5 时才会进行循环,输出变量 i 的值。

    运行结果为:

    四:Java循环语句之多重循环;

      循环体中包含循环语句的结构称为多重循环。三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环。在二重循环中,外层循环每执行一次,内层循环要执行一圈。

    如下所示:

    例如:使用 * 打印长方形:

    代码如下:

    public class HelloWorld {
        public static void main(String args[]){
            
            //外层循环控制打印的行数
            for(int a=0;a<4;a++){
                //内层循环控制每行打印的*号数
                for(int b=0;b<8;b++){
                    System.out.print("*");
            }
                //每行打印完毕换行
                System.out.println();
            } 
        }
        
    }

    运行结果为:

      执行流程:当 i = 1 时,外层循环条件成立,进入内层循环,开始打印第一行内容。此时, j 从 1 开始,循环 8 次,内层循环结束后换行,实现第一行 8 个 * 的输出。接下来返回外层循环 i 变为 2 ,准备打印下一行,依此类推,直到完成长方形的打印。

  • 相关阅读:
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 695 岛屿的最大面积(DFS)
    Java实现 LeetCode 695 岛屿的最大面积(DFS)
    PHP serialize() 函数
    PHP print_r() 函数
  • 原文地址:https://www.cnblogs.com/pureqh/p/9123697.html
Copyright © 2011-2022 走看看