①分析要求:已有的信息是三个用户的账号密码余额,要求能够在一个代码里完成ATM的流程:登陆用户→判定成功→存取查退;
②用户信息都是三个账号,三个密码,三个余额,能满足在一个代码里运行且为了让获取信息元素简洁,代码可读性高,采用数组的方式:账号、密码用引用数组类型,余额用浮点型数组类型;
③判定登陆成功:要求同一个用户的账号和密码同时相等.equals(),用户输入的iptname和iptpassword应和存储在账号数组和密码数组中用一个下标值相等,才能成功登陆;计算机在判断时,应该依次在数组中拿出元素来和用户输入的值进行重复判断,若下标值为0的不满足,进行下标志为1的元素判断,这种重复判断用for循环进行(因为知道最多循环3次能得到结果,初始值为下标0,结束为数组长度-1)
public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String[] userArr = {"zhangsan", "lisi", "wangwu"};
String[] pwdArr = {"123", "456", "789"};
int[] moneyArr = {500, 1000, 2000};
//登陆判断:①②
System.out.println("请输入账号");
String iptname = scan.next();
System.out.println("请输入密码");
String iptpassword = scan.next();
//循环判断③
for (int i = 0; i < userArr.length; i++) {
if (iptname.equals(userArr[i]) && iptpassword.equals(pwdArr[i])) {
}
}
④输出判定的结果:
考虑
:
1.在for循环内输出:如果输出在循环内输出,若用户输入的是lisi和456,循环是从i=0(zhangtsan和123)开始判断,结果为否,再i=1判断结果为真,再i=2判断(wangwu和789)结果为否,会输出三个结果;我们要一个结果 所以不能在循环里面输出。(×)
2.在for循环外输出:若在循环外输出,我们需要跳出for循环让计算机的程序往下走,所以要用到布尔值,也就是提前定义for的布尔值为假,当输入信息和数组信息相等,改变布尔值为真,在下面进行编写程序判定为真之后的代码。为真后,我们的输出:欢迎您+用户名,这里的用户名要引用登陆成功时成功匹配的用户名,所以还需要在判定外加一个keepIndex,