作者:我的 | 来源:互联网 | 2022-12-07 02:56
如果以前曾经问过,我谦卑地道歉.
这是我的一些代码.
int id1 = 1234;
int id2 = 5678;
int idPass1 = 123;
int idPass2 = 456;
System.out.println("Welcome. Please enter your Employee ID.");
while(true) {
int id = input.nextInt();
//add more if needed
if(id != id1 || id != id2){
System.out.println("Employee does not exist. Please try again.");
} else {
break;
}
}
System.out.println("Please enter your password.");
while(true){
int idPass = input.nextInt();
//add more if needed
if(idPass != idPass1 || idPass != idPass2){
System.out.println("Incorrect Password entered. Please try again.");
} else {
break;
}
}
如你看到的.除了变量之外,2个if/else语句完全相同.在IntelliJ中,带有ID的第一个语句表明它始终是真的.带密码的第二个声明并没有给我这个警告.
如果第二个if/else语句完全相同(减去变量)并且不总是为真,那么第一个if/else语句如何总是为真?
(在此代码之前声明了扫描程序.)
1> lincr..:
由于您id1
和id2
不相等,因此表达式(id != id1 || id != id2)
应始终评估为true.您可能想要&&
用来替换||
.然后你的代码落在第一个循环中,导致第二个表达式没有被评估,所以没有警告.