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

Java while和do while循环详解(附带实例)

Java 中的 while 语句也称条件判断语句,它的循环方式是利用一个条件来控制是否要继续反复执行这个语句。

while 循环语句的语法如下:
while(条件表达式){
   语句序列
}
当条件表达式的返回值为真时,则执行“{}”中的语句,当执行完“{}”中的语句后,重新判断条件表达式的返回值,直到表达式返回的结果为假时,退出循环。

while 循环语句的执行过程如下图所示:


图 1 while语句的执行过程

【实例】计算 1~1000 的相加结果。
创建 GetSum 类,在主方法中通过 while 循环计算 1~1000 相加的和并输出最终的相加结果。
public class GetSum {
    public static void main(String args[]) {
        int x = 1; // 从 1 开始
        int sum = 0; // 相加的结果
        while (x <= 1000) { // 循环 1000 次
            sum = sum + x; // sum 与之前计算的和相加
            x++; // 每次循环后 x 的值 + 1
        }
        System.out.println("sum = " + sum); // 输出最终的相加结果
    }
}
运行结果如下:

sum = 500500


注意,初学者经常犯的一个错误就是在 while 表达式的括号后加“;”。如:
while(x == 5);
System.out.println("x的值为5");
这时程序会认为要执行一条空语句,而进入无限循环,Java 编译器又不会报错。这可能会浪费很多时间调试程序,应注意这个问题。

Java do while循环语句

do while 循环语句的语法如下:
do{
   语句序列
}while(条件表达式);
do while 循环语句与 while 循环语句类似,它们之间的区别是,while 语句先判断条件是否成立再执行循环体,而 do while 循环语句则先执行一次循环后,再判断条件是否成立。也就是说,do while 循环语句“{}”中的程序段至少要被执行一次。

再有,do while 语句与 while 语句的一个明显区别是,do while 语句在结尾处多了一个分号。

根据 do while 循环语句的语法特点总结出 do while 循环语句的执行过程,如图下所示:

图 2 do while循环语句的执行过程

【实例】使用 do while 语句进行用户登录验证。
创建 LoginService 类,首先提示用户输入 6 位密码,然后使用 Scanner 扫描器类获取用户输入的密码,最后进入 do while 语句中进行循环,以判断用户输入的密码是否正确,如果用户输入的密码不是“931567”,则让用户反复输入,直到输入正确的密码。
import java.util.Scanner; // 导入 Scanner 类

public class LoginService {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); // 创建扫描器,获取在控制台中输入的值
        int password; // 保存用户输入的密码
        do {
            System.out.println("请输入6位数字密码:"); // 输出提示
            password = sc.nextInt(); // 将用户在控制台中输入的密码记录下来
        } while (931567 != password); // 如果用户输入的密码不是“931567”,则继续执行循环
        System.out.println("登录成功"); // 提示循环已结束
        sc.close(); // 关闭扫描器
    }
}
运行结果为:

请输入6位数字密码:
123456
请输入6位数字密码:
987321
请输入6位数字密码:
931567
登录成功

相关文章