Java是一种不重复NIF的方法
我有这个方法
public static boolean DNIRepetido(String dni1){
boolean aux=false;
for (Cliente cliente : cli) {
if(dni1==cliente.dni){
aux=true;
}else{
aux=false;
break;
}
}
return aux;
}
但当我实施它时,它并不好用
do{
System.out.print("DNI: ");
c.dni=sc.next();
}while((ValidarDNI(c.dni)==false)&&(DNIRepetido(c.dni)==false));
(“ValidarDNI”很好用)
# 1 楼答案
必须使用equals方法比较字符串的相等性(相同内容)。这是一个frequent mistake
此外,我还要检查),for循环的下一次迭代将改变这一事实:
DNIRepetido
退出条件。我猜当你发现重复的DNI时,你想退出。在您的情况下,如果发现重复的DNI(并因此设置^{# 2 楼答案
除了用于比较字符串的equals()方法之外,还要在代码中添加另一个问题
当您进入循环时,第一次找到具有不同DNI的客户机时,您将退出循环,并且不会检查其他客户机DNI。你应该避免代码中的else部分: