求大神指教,正确输入为啥不能成功登陆

 public static void shixian() {

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入账号:");
        String name = scanner.next();
        System.out.println("请输入密码:");
        String password = scanner.next();

        Map<String, String> map = new HashMap<>();
        map.put("222", "222");
        map.put("1", "1");
        map.put("2", "3");
        Set<Entry<String, String>> en = map.entrySet();
        for (Entry<String, String> entry : en) {
            if (name.equals(entry.getKey()) && password.equals(entry.getValue())) {
                System.out.println("登录成功");
                break;
            } else {
                System.out.println("用户名错误,请确认账户和密码后再输入");
                //shixian();
            }
        }

    }

问题出现在你的for循环中
修改为:

 public static void shixian() {

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入账号:");
        String name = scanner.next();
        System.out.println("请输入密码:");
        String password = scanner.next();

        Map<String, String> map = new HashMap<>();
        map.put("222", "222");
        map.put("1", "1");
        map.put("2", "3");
        Set<Entry<String, String>> en = map.entrySet();

        boolean isTrue=false;
        for (Entry<String, String> entry : en) {
            if (name.equals(entry.getKey()) && password.equals(entry.getValue())) {
                isTrue=true;
                break;
            } 
        }

        System.out.println(isTrue?"登陆成功":"登陆失败");

    }

把Set 能用for循环? 把循环方式改改,改为Iterator遍历

 for (Entry<String, String> entry : en) {
            if (name.equals(entry.getKey()) && password.equals(entry.getValue())) {
                System.out.println("登录成功");
                break;
            } else {
                System.out.println("用户名错误,请确认账户和密码后再输入");
                //shixian();
            }
        }

这样判断第一个key和value不对时就会输出 用户名错误,请确认账户和密码后再输入
没有把map全部遍历