-
背景
假设一个简单的在ATM的取款过程如下:首先提示用户输入密码(password),
最多只能输入3次,超过3次则提示用户"密码错误,请取卡"交易结束。
如果用户密码正确,再提示用户输入金额(amount),ATM只能输出100元的纸币,一次取钱数要求最低0元,最高1000元。
如果用户输入的金额符合上述要求,则打印输出用户取的钱数,最后提示用户"交易完成,请取卡",否则提示用户重新输入金额。假设用户密码是"111111"。打印格式: 第一种情况:三次密码输入错误 请输入密码:2 密码错误,请重新输入:3 密码错误,请重新输入:4 密码错误,请取卡 第二种情况:密码输入正确,可以取款 请输入密码:2 密码错误,请重新输入:111111 请输入取款金额:3000 您输入的取款金额有误,请重新输入:999 请取走现金:999元 交易完成,请取卡.
-
需求分析
1.密码的判别次数已经确定,可以用for或者while循环来完成;
2.在输入金额是不确定的循环次数,可以考虑活用死循环.
3.其余的就是涉及到密码判定的if条件语句,和输入金额判定的条件语句; -
代码如下
package com.itheima.kuihuabaodian;
import java.util.Scanner;
public class Case05 {
public static void main(String[] args) {
Scanner num = new Scanner(System.in);
int count=3;
int amount;
while (count>0){
System.out.println("请输入密码( 输错"+count+"次后锁卡 ):");
int password=num.nextInt();
if(password==111111){
System.out.println("请输入取款金额(0-100内的整百):");
while(true){
amount=num.nextInt();
if (amount%100==0 && amount>=0 && amount<=1000){
System.out.println("请取走现金"+amount);
System.out.println("交易完成,请取卡.");
System.exit(0);
}else {
System.out.println("请重新输入取款金额(0-100内的整百):");
}
}
}
count--;
}
System.out.println("密码错误,请取卡.");
}
}
代码输出:
"D:\IDEA\IntelliJ IDEA 2019.3.3\jbr\bin\java.exe" "-javaagent:D:\IDEA\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=55199:D:\IDEA\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath D:\IDEA\IDEAcode\baseclass\out\production\day04code com.itheima.kuihuabaodian.Case05
请输入密码( 输错3次后锁卡 ):
22222
请输入密码( 输错2次后锁卡 ):
9999
请输入密码( 输错1次后锁卡 ):
111111
请输入取款金额(0-100内的整百):
5555
请重新输入取款金额(0-100内的整百):
1000
请取走现金1000
交易完成,请取卡.
Process finished with exit code 0
分析:
无.