有没有黑马说一次为什么报错啊?看了好久都没看出来为什么登录界面输入密码后报错
代码如下:
public class ATMSystem {
//1、定义账户类
public static void main(String[] args) {
//2、定义一个集合容器,负责以后存储全部的账户对象,进行相关业务
ArrayList<Account> accounts = new ArrayList<>();
Scanner rs = new Scanner(System.in);
//3、展示系统的首页
while (true) {
System.out.println("=============于晏ATM系统===============");
System.out.println("1、账户登录~~");
System.out.println("2、账户开户~~");
System.out.println("请输入您的选择:");
int command = rs.nextInt();
switch (command){
case 1:
//用户登录系统
login(accounts,rs);
break;
case 2 :
//用户开户系统 (ALT + ENTER)
register(accounts , rs);
break;
default:
System.out.println("您输入的用户不存在~~");
}
}
}
/**
* 用户登录系统
* @param accounts 用户集合
* @param rs 扫描器
*/
private static void login(ArrayList<Account> accounts, Scanner rs) {
System.out.println("==================系统登录操作==========================");
//1、判断账户集合中是否存在账户,如果账户不存在,登录功能不能进行
if (accounts.size() == 0){
//账户不存在
System.out.println("对不起,当前未查询到有账户~");
return; //卫语风格,结束当前方法执行
}
//2、正式进入登录操作
while (true) {
System.out.println("请您输入您的卡号:");
String cardId = rs.next();
//判断卡号是否存在
Account acc = getAccountByCardId(cardId, accounts);//查询卡号是否存在方法
if (acc != null) {
while (true){
//卡号存在
//3、让用户输入密码
System.out.println("请您输入密码:");
String passWord = rs.next();
//判断密码是否正确
if (acc.getPassWord().equals(passWord)) {
//登录成功