请问这是怎么回事,代码哪里有问题

代码如下
package atm;

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

public class Atm1 {
public static void main(String[] args) {
ArrayList count = new ArrayList<>();// 集合里面装账户对象
while (true) { // 定义一个死循环,登录和注册
System.out.println("请你输入要执行的功能");
System.out.println("登录");
System.out.println("注册");
Scanner a = new Scanner(System.in);
try {
String type = a.next();
switch (type) {

            case "登录":
                // landing();
                break;
            case "注册":
                register(a, count);// 注册账户函数
                System.out.println("你的账户注册成功");
                break;
            default:
                System.out.println("你输入的指令有误");
            }
        } finally {
            a.close();
        }
    }
}

public static void register(Scanner a, ArrayList<Atm> count) {// 注册账户
    System.out.println("请你输入用户名");
    String username = a.next(); // 输入用户名
    System.out.print("你的账号是:");
    String name = zhanghao(count); // 生成一个账号是一个功能,另设一个函数 name是账号
    System.out.println(name);
    String password = password(a);// 输入一个密码功能 password是密码
    System.out.println("请输入当次取现额度");
    double limitmoney = a.nextDouble();
    Atm count1 = new Atm(username, password, name, limitmoney);
    count.add(count1);
    System.out.println("你的账户创建成功");
    System.out.println(username);
    System.out.println(password);
    System.out.println(name);
    System.out.println(limitmoney);

}

public static String zhanghao(ArrayList<Atm> count) {
    while (true) {
        int c = 0;
        String name = "";
        Random b = new Random();
        for (int i = 0; i < 8; i++) {
            name += b.nextInt(10);
        }
        for (int i = 0; i < count.size(); i++) {
            Atm name1 = count.get(i);
            if (name1.getName().equals(name)) {
                c = 1;
                break;
            }
        }
        if (c == 0) {
            return name;
        }
    }

}

public static String password(Scanner a) // 定义一个密码
{
    while (true) {
        System.out.println("请输入你的密码");
        String password = a.next();
        System.out.println("请再次输入你的密码");
        String password1 = a.next();
        if (password.equals(password1)) { // 比较两次输入的密码
            return password;
        } else {
            System.out.println("你两次输入的密码不一样");
        }
    }
}

}

img