Java中的while循环语句(新手必看)
Java 中提供了 4 种类型的循环语句来实现循环结构,即 while 语句、do-while 语句、for 语句以及针对数组和集合遍历的 foreach 语句。本节带大家系统学习 while 循环的用法。
while 循环语句需要先进行循环条件(布尔表达式)判断,即计算该循环条件的值,结果为 true 时进入循环体(重复执行的语句块),结果为 false 时退出循环。
while 循环的语法结构如下:

图 1 while 循环处理流程图
while 循环的执行逻辑为:计算循环条件的结果,如果结果为 true,执行“重复执行语句块”,即循环体;如果结果为 false,退出循环,循环体执行完毕后重新回到循环条件判断。
使用 while 循环时,需要注意以下几点:
【实例】小明被罚抄《咏鹅》 3 遍。
实现思路是:循环体为输出《咏鹅》的 4 句诗;循环条件是输出 3 次;根据循环条件可知,循环变量就是次数,初始次数应为 0 次;循环变量更替应该是每循环一次则次数加 1。
第 5~10 行是重复执行的代码,即循环体,顺序执行。其中,第 9 行的 num++ 是循环变量更替,如果此处不写该语句,那么 num 值将一直保持初始值 0,循环条件结果将一直为 true,就会造成死循环。
当第 10 行执行完毕,即循环体执行完毕后,重新执行第 4 行的循环条件,即重新进行前面的步骤,直到条件判断结果为 false,即 num 等于 3 时,终止循环。
【实例】计算 1+2+3+…+100 的结果并输出。
第 4 行是循环变量 i 的初始化,因为 1~100 之和是从 1 开始加的,因此初始值为 1。
第 5 行是循环条件,如果 i <= 100 返回 true,说明没有加到 100,循环继续,否则循环终止。
第 6 行的
第 7 行的 i++ 为循环变量更替,计算完毕后重新回到第 5 行进行循环条件判断,重复执行。
整体运行过程如下:
while 循环语句需要先进行循环条件(布尔表达式)判断,即计算该循环条件的值,结果为 true 时进入循环体(重复执行的语句块),结果为 false 时退出循环。
while 循环的语法结构如下:
while (循环条件){ 重复执行语句块; }while 循环语句的执行流程如下图所示:

图 1 while 循环处理流程图
while 循环的执行逻辑为:计算循环条件的结果,如果结果为 true,执行“重复执行语句块”,即循环体;如果结果为 false,退出循环,循环体执行完毕后重新回到循环条件判断。
使用 while 循环时,需要注意以下几点:
- 循环条件结果只能为 true 或者 false;
- 如果循环体只有一条语句则“{}”可以省略。
- 如果开始第 1 次循环时循环条件计算的值为 false,那么循环体将不会执行。
- 一般需要在循环体中更改循环变量(循环条件中的变量)的值,使循环趋于结束,否则如果循环条件的结果始终为 true,会造成死循环。
所谓死循环,指的是一个无法终止的循环,即该循环会一直执行下去,无法退出。
【实例】小明被罚抄《咏鹅》 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次
第 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 行进行循环条件判断,重复执行。
整体运行过程如下:
- 第 1 次 i = 1,计算累计到 1 的和为 1,赋值给 sum,然后执行 i++,结果为 2,循环体执行完毕;
- 第 2 次进行“i <= 100”判断,结果为 true,重新进入循环体,计算累计到 2 的和,赋值给 sum 后执行 i++,结果为 3,循环体执行完毕;
- 第 3 次进行条件判断,结果为 true,重新进入循环体,以此类推;
- 一直计算到累计到 100 的和,i 更新为 101,循环条件的结果为 false,退出循环。