有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

为什么我的while循环不识别整数的条件并生成无限循环?(Java while循环“验证银行Pin”)

我尝试输入与validPin变量相同的int,但它会产生无限循环,即使条件已经为真。另外,我尝试将validPin更改为12345,但如果validPin为002200,则无效。为什么?

public void main() {

    Scanner in = new Scanner(System.in);
    int validPin = 002200;
    System.out.print("Enter PIN to access:");
    int pin = in.nextInt();


    while (pin != validPin) {
        System.out.print("Invalid PIN, Try again:");
        pin = in.nextInt();
    }

    System.out.println("You have entered the correct PIN, now you have acces for your account!");

}

}


共 (1) 个答案

  1. # 1 楼答案

    在Java源代码中,002200是十进制值1152,而对于nextInt,002200是十进制值2200

    (这是C语言的一个恼人的倒退,它本不应该在Java中被采用,但我们仍然坚持使用它)

    阅读Java源代码中的八进制常量-任何教程都应该有这些信息

    此外,如果您要求用户实际键入这些前导零,那么最好使用字符串而不是整数