You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java登录程序整合while循环实现输入校验求助

解决Java登录程序的循环验证问题

嘿,刚从Python转Java很正常,咱们来一步步调整你的代码,实现「用户名不对就一直输用户名,对了再输密码,密码不对也一直输」的逻辑~

首先先说说你现有代码里的小问题:

  • 没必要创建两个Scanner对象,一个就足够处理所有输入,多创建反而容易导致资源没正确释放
  • 现在的逻辑是哪怕用户名错了,程序还是会继续让你输密码,这不符合你想要的流程

接下来是修改后的完整代码,我加了详细注释,你一看就懂:

import java.util.Scanner;

public class Login {
    public static void main(String[] args) {
        // 预设的正确用户名和密码
        String correctUsername = "KenBoneL0ver";
        String correctPassword = "KenBone4Life";
        
        // 只需要一个Scanner来处理所有输入
        Scanner scanner = new Scanner(System.in);
        
        // 处理用户名循环输入
        String usernameInput;
        while (true) {
            System.out.println("Please enter your username:");
            usernameInput = scanner.nextLine();
            
            if (usernameInput.equals(correctUsername)) {
                // 用户名正确,跳出循环,进入密码环节
                break;
            } else {
                System.out.println("Incorrect username. Please try again:");
            }
        }
        
        // 处理密码循环输入
        String passwordInput;
        while (true) {
            System.out.println("Now please enter the correct password:");
            passwordInput = scanner.nextLine();
            
            if (passwordInput.equals(correctPassword)) {
                // 密码正确,跳出循环,显示成功信息
                break;
            } else {
                System.out.println("Incorrect password. Please try again:");
            }
        }
        
        // 登录成功提示
        System.out.println("You have successfully logged in!");
        
        // 最后关闭Scanner
        scanner.close();
    }
}

关键逻辑说明:

  • 用while(true)创建一个无限循环,直到用户输入正确的内容,就用break跳出循环
  • 只使用一个Scanner对象,避免不必要的资源浪费
  • 严格遵循「先过用户名验证,再过密码验证」的流程,用户名不对就一直停在用户名输入阶段

给你这个Java新手的小提示:

  • Java里比较字符串内容一定要用equals()方法,不能用==(==是比较内存地址,不是内容,这和Python不一样哦)
  • 用完Scanner后记得调用close()关闭,养成良好的资源管理习惯

内容的提问来源于stack exchange,提问作者OwenMc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 10:53:15