我的密码程序出了什么问题?

时间:2014-09-16 17:34:43

标签: java passwords

当我不写有效密码时,Helllo可以告诉我为什么它没有告诉我密码无效?

import java.util.Scanner;

public class Password {  
    private static Scanner in;

    public static void main(String[] args) {
        System.out.println("Please enter the password:");
        in = new Scanner (System.in);
        String pass;
        pass = in.nextLine();
        if(pass.length() < 4){
            System.out.println("The password is too short");

        } else if(pass.length() > 9){
            System.out.println("The password is too long");

        }

        if(pass.equalsIgnoreCase("hudhud")){
            System.out.println("Welcome BOSS");
            while (!pass.equals("hudhud")){
                System.out.println("The password is invalid");
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

测试用例:

Input: foo
Output: The password is too short

Input: foobar
Output: 

Input: foobarfoobar
Output: The password is too long

Input: hudhud
Output: Welcome BOSS

你的同时声明

while (!pass.equals("hudhud")){
    System.out.println("The password is invalid");
}

是死代码 - 无法访问。您检查pass是否等于hudhud。在该检查中,如果密码不等于while,则会有一个hudhud循环而没有break语句测试。此时,除了hudhud之外,它不能等于任何其他内容。

请注意,当密码介于4到9个字符且不等于hudhud时,屏幕上不会打印任何内容。如果您尝试更改,请在else支票上添加if(pass.equalsIgnoreCase("hudhud"))