首页 > 编程笔记 > Java笔记 阅读:10

Java中的while循环语句(新手必看)

Java 中提供了 4 种类型的循环语句来实现循环结构,即 while 语句、do-while 语句、for 语句以及针对数组和集合遍历的 foreach 语句。本节带大家系统学习 while 循环的用法。

while 循环语句需要先进行循环条件(布尔表达式)判断,即计算该循环条件的值,结果为 true 时进入循环体(重复执行的语句块),结果为 false 时退出循环。

while 循环的语法结构如下:
while (循环条件){
   重复执行语句块;
}
while 循环语句的执行流程如下图所示:


图 1 while 循环处理流程图

while 循环的执行逻辑为:计算循环条件的结果,如果结果为 true,执行“重复执行语句块”,即循环体;如果结果为 false,退出循环,循环体执行完毕后重新回到循环条件判断。

使用 while 循环时,需要注意以下几点:

所谓死循环,指的是一个无法终止的循环,即该循环会一直执行下去,无法退出。


【实例】小明被罚抄《咏鹅》 3 遍。
实现思路是:循环体为输出《咏鹅》的 4 句诗;循环条件是输出 3 次;根据循环条件可知,循环变量就是次数,初始次数应为 0 次;循环变量更替应该是每循环一次则次数加 1。
public class Demo {
    public static void main(String[] args) {
        int num = 0; // 抄写次数初始值为0
        while (num < 3) { // 循环条件为抄写次数
            System.out.print("鹅鹅鹅,");
            System.out.print("曲项向天歌。");
            System.out.print("白毛浮绿水,");
            System.out.println("红掌拨清波。"); // 循环体,输出《咏鹅》诗句
            num++; // 循环次数递增
            System.out.println("完成了" + num + "次");
        }
    }
}
程序的运行结果如下:

鹅鹅鹅,曲项向天歌。白毛浮绿水,红掌拨清波。
完成了1次
鹅鹅鹅,曲项向天歌。白毛浮绿水,红掌拨清波。
完成了2次
鹅鹅鹅,曲项向天歌。白毛浮绿水,红掌拨清波。
完成了3次

程序中第 3 行是循环变量初始化,该变量是根据循环条件推断出来的。第 4 行是循环条件,其作用是控制循环何时终止。如果循环条件返回值为 true,则进入循环体,即执行第 5~10 行;如果循环条件返回值为 false,则终止循环。

第 5~10 行是重复执行的代码,即循环体,顺序执行。其中,第 9 行的 num++ 是循环变量更替,如果此处不写该语句,那么 num 值将一直保持初始值 0,循环条件结果将一直为 true,就会造成死循环。

当第 10 行执行完毕,即循环体执行完毕后,重新执行第 4 行的循环条件,即重新进行前面的步骤,直到条件判断结果为 false,即 num 等于 3 时,终止循环。

【实例】计算 1+2+3+…+100 的结果并输出。
public class Demo {
    public static void main(String[] args) { // 初始化和为0
        int sum = 0;
        int i = 1; // i为当前需要加到和中的数字,从1开始
        while (i <= 100) { // 如果i大于100退出循环
            sum += i; // sum+i作为计算到当前值的和
            i++; // 循环变量更替
        }
        System.out.println("1+2+3+...+100的结果: " + sum);
    }
}
程序的运行结果如下:

1+2+3+…+100的结果:5050

程序中,第 3 行初始化和为 0,如果 sum 变量不进行声明和初始化,后续无法直接参与sum = sum + i的运算。

第 4 行是循环变量 i 的初始化,因为 1~100 之和是从 1 开始加的,因此初始值为 1。

第 5 行是循环条件,如果 i <= 100 返回 true,说明没有加到 100,循环继续,否则循环终止。

第 6 行的 sum += i 等价于 sum = sum + i,将之前的和加上当前的 i 的值,重新赋值给 sum。

第 7 行的 i++ 为循环变量更替,计算完毕后重新回到第 5 行进行循环条件判断,重复执行。

整体运行过程如下:

相关文章