首页 > 编程笔记

Java循环语句(while、do while和for)

循环结构是在一定条件下反复执行一段语句的流程结构,如重复输出一条语句特定的次数,或者对数据集中的每个数据执行相同的验证逻辑。

Java 中有 3 种循环语句,分别是 while、do while 和 for。

while循环语句

while 循环语句的语法格式如下:
while(循环条件){
     循环体;
}
上述语句的执行顺序如下:
while 循环语句的流程图是:

图 1 while循环语句的流程图

while 循环语句的特点是先判断再循环,循环体的执行次数大于或等于 0。当循环条件的值为 true 时执行。while 循环语句中应有使循环趋向于结束的语句,否则会出现无限循环,即死循环。

【实例】使用 while 循环语句求 1~100 的累加和。
public class Test {
    public static void main(String[] args) {
        int i = 1;
        int sum = 0; // 用于统计最终的结果

        while (i <= 100) { // 循环条件
            // 相当于 sum = sum + i;
            sum += i;
            i++;
        }
        System.out.println("Sum = " + sum);
    }
}
运行结果为:

Sum = 5050

do while循环语句

do while 循环语句与 while 循环语句类似,只是 while 循环语句先判断后循环,do while 循环语句则先循环后判断,循环体至少执行一次。

do while 循环语句的语法格式如下:
do{
     循环体;
}while(循环条件);

do while 循环语句的流程图如下:

图 2 do while循环语句的流程图

【实例】使用 do while 循环语句改写前面的 while 实例。
public class Test {
    public static void main(String[] args) {
        int i = 1;
        int sum = 0;
        do {
            sum += i;
            i++;
        } while (i <= 100);
        System.out.println("Sum = " + sum);
    }
}
运行结果为:

Sum = 5050

for循环语句

for 循环语句是应用最广泛、功能最强的一种循环结构,一般用于已知循环次数的情况下。

for 循环语句的特点是先判断后执行,循环体的执行次数大于或等于 0,当条件表达式的值为 true 时执行。

for 循环语句的语法格式如下:
for([初始化表达式];[条件表达式];[迭代表达式]){
     循环体
}
上述语句的执行顺序如下:
for 循环语句的流程图如下:

图 3 for循环语句的流程图

【实例】使用 for 循环语句改写前面的 do while 实例。
public class Test {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            sum += i;
        }
        System.out.println(sum);
    }
}
运行结果为:

5050

需要注意的是,初始化表达式、条件表达式及迭代表达式都可以省略,但分号不能省略,当三者都省略时循环会一直执行,即出现死循环。

循环语句的选择

通过对循环语句的学习,读者现在可以使用 3 种流程控制语句来实现循环结构。接下来要思考的问题是,如何结合特定的场景进行选择。

for 循环语句和 while 循环语句在执行循环体之前测试循环条件,属于当型循环,循环体可能一次都不执行。

do while 循环语句在执行循环体之后测试循环条件,属于直到型循环,至少执行一次循环体。

for 循环语句更适合用于明确知道循环次数的场景。

while 循环语句和 do while 循环语句更适合用于循环次数不明确,以及当某个条件改变时再结束循环的场景。

推荐阅读