首页 > 其他分享 >第三章《数组与循环》第5节:do...while循环

第三章《数组与循环》第5节:do...while循环

时间:2022-12-29 18:33:54浏览次数:64  
标签:do ... 用户 密码 while 循环 输入

​前面两个小节中介绍的while循环和普通for循环,都有一个显著的共同特点:执行循环语句之前要先判断循环条件是否成立,仅在循环条件成立的情况下才执行循环语句,这种循环方式可以用六个字来概括,即“先判断后执行”。

在实际开发过程中,有时候需要让虚拟机先执行一些操作,然后再根据执行操作的结果决定是否再次执行同样的操作。比如,用户登录的操作就是一个典型的例子。程序需要先让用户输入密码,然后根据所输入的密码是否正确决定是否要让用户再次输入密码。如果第一次输入的密码是正确的,就直接进登录系统,而如果用户第一次输入的密码是错误的,则需要用户再次输入密码,并且根据本次输入的密码是否正确决定是否要让用户重新输入密码。

多次输入密码就是一个循环操作的过程。这个过程中:第一次输入密码不需要判断任何条件,是无条件进行的。而后面的输入则是有条件的,这个条件就是前一次输入的密码错误。这种循环方式也可以概括为六个字:“先执行后判断”。使用之前所介绍的while和for两种循环是无法完成这个循环操作的,因为它们在执行循环前都要先判断循环条件是否成立。而输入密码的操作在第一次执行循环时无需判断任何条件,直接就可以执行。

在Java语言中,有一种“先执行后判断”模式的循环,它被称为do...while循环,其语法格式如下:

do

{

    循环语句;

}while(条件);

此处特别提醒各位读者,在格式末尾,也就是包含循环条件的小括号后面有一个分号,编码时切不可把这个分号漏掉。可以看出:这种循环把while关键字以及循环条件放在了格式的最后一部分。虚拟机在执行do...while循环时,首先无条件的执行一次循环语句,然后判断循环条件是否成立,如果条件成立,则再次执行循环语句,如此反复,直到循环条件不成立为止。各位读者不难发现:之前讲过的while和普通for循环的循环语句有可能一次都得不到执行,因为它们的循环条件可能在一开始就不成立,而do...while循环的循环语句则至少会执行一次。

使用do...while循环可以实现本小节开头提到的多次输入密码的操作。假设用户登录的是一台自动取款机,在插入银行卡卡之后无需填写任何用户信息,直接输入密码即可。程序中以int型变量password表示银行卡密码,以变量input表示用户所输入的密码。如果用户输入的密码与银行卡密码不相等,说明输入的密码错误,就让用户重新输入密码,直到所输入的密码正确为止。该程序的完整代码如下:

【例03_09输入密码直到正确】

Exam03_09.java

import java.util.Scanner;

public class Exam03_09 {
public static void main(String[] args) {
int password = 123456;// 银行卡本身密码
int input;// 用户所输入的密码
Scanner sc = new Scanner(System.in);
do {
System.out.println("请输入密码:");
input = sc.nextInt();
} while (input != password);
System.out.println("成功登录ATM!");
}
}

在【例03_09】首先让用户输入密码,当用户所输入的密码与银行卡密码相等时才跳出循环。跳出循环时说明登录已经成功,所以在do...while循环的后面输出“成功登录ATM!”。这个例题只是为了演示do...while循环的功能以及使用方法。在现实生活中,自动取款机都会限制密码的输入次数,如果连续输入3次密码都是错误的,自动取款机将不允许用户再次输入密码。各位读者可自行思考如何实现限制输入次数的操作。此处给出一个关键性提示:可以设置一个变量专门记录输入密码的次数,并把输入密码的次数也作为循环条件之一。如果输入次数达到3次并且密码仍然不正确,则退出循环,并提示用户输入密码次数已经超过限制。

除此文字版教程外,小伙伴们还可以点击这里观看我在本站的视频课程学习Java。

标签:do,...,用户,密码,while,循环,输入
From: https://blog.51cto.com/mugexuetang/5978698

相关文章