为什么我的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 楼答案
在Java源代码中,002200是十进制值1152,而对于nextInt,002200是十进制值2200
(这是C语言的一个恼人的倒退,它本不应该在Java中被采用,但我们仍然坚持使用它)
阅读Java源代码中的八进制常量-任何教程都应该有这些信息
此外,如果您要求用户实际键入这些前导零,那么最好使用字符串而不是整数