Java:在数组中实现具有重复值的循环

Java:在数组中实现具有重复值的循环,java,arrays,loops,duplicates,Java,Arrays,Loops,Duplicates,我的任务是在数组中输入名称。如果已经输入了名字,程序必须对此发出警告,并以相同的号码重新输入玩家 这是我的代码: public void enterNames() { for (int i=0; i<nameOfPlayers.length; i++) { do { // isDuplicate is a Boolean initialized to false

我的任务是在数组中输入名称。如果已经输入了名字,程序必须对此发出警告,并以相同的号码重新输入玩家

这是我的代码:

public void enterNames()    {

     for (int i=0; i<nameOfPlayers.length; i++) 
     {
           do 
           {    
               // isDuplicate is a Boolean initialized to false     
               System.out.println("CHECK": + isDuplicate);

               System.out.println("Enter player " + (i+1) + ":");

               nameOfPlayers[i] = in.next();

               for (int k=0; k<nameOfPlayers.length; k++)   
               {
                   if (k!=i && nameOfPlayers[i].equals(nameOfPlayers[k]))   
                   {
                       isDuplicate = true;                      
                       break;
                   }            
               }
           } while (isDuplicate = false);
      } 
 }
public void enterNames(){

对于(inti=0;i,您遇到的问题是由于

} while (isDuplicate = false);
应该是(注意双精度==)


除此之外,您的代码效率很低。如果您真的需要两个数组,您可能会做得更好,否则最好使用链表。

您遇到的问题是因为

} while (isDuplicate = false);
应该是(注意双精度==)


除此之外,您的代码效率很低。如果您真的需要两个数组,您可能会做得更好,否则最好使用链表。

您遇到的问题是因为

} while (isDuplicate = false);
应该是(注意双精度==)


除此之外,您的代码效率很低。如果您真的需要两个数组,您可能会做得更好,否则最好使用链表。

您遇到的问题是因为

} while (isDuplicate = false);
应该是(注意双精度==)


除此之外,您的代码效率很低。如果您真的需要两个数组,您可能会做得更好,否则最好使用链表。

您的
虽然不正确,但

while (isDuplicate = false);
false
分配给
isDuplicate
,其副作用是也计算为
false

while (isDuplicate == false);
还是更短的

while (!isDuplicate);

您的
不正确,但

while (isDuplicate = false);
false
分配给
isDuplicate
,其副作用是也计算为
false

while (isDuplicate == false);
还是更短的

while (!isDuplicate);

您的
不正确,但

while (isDuplicate = false);
false
分配给
isDuplicate
,其副作用是也计算为
false

while (isDuplicate == false);
还是更短的

while (!isDuplicate);

您的
不正确,但

while (isDuplicate = false);
false
分配给
isDuplicate
,其副作用是也计算为
false

while (isDuplicate == false);
还是更短的

while (!isDuplicate);

答案经过改革,使用列表添加越来越多的元素,而无需预定义大小

while(isDuplicate==false);
更改为
while(!isDuplicate);

publicstaticvoidmain(字符串[]args){
扫描仪=新的扫描仪(System.in);
List nameOfPlayers=new ArrayList();
布尔值isDuplicate=false;
int i=0;
做{
System.out.println(“输入player”+(i+1)+“:或Q表示退出”);
字符串输入=scanner.next();
if(!input.equalsIgnoreCase(“Q”)){
if(nameOfPlayers.contains(输入)){
isDuplicate=真;
}否则{
图层名称。添加(输入);
isDuplicate=假;
}
System.out.println(“检查:+isDuplicate”);
}否则{
打破
}
i++;
}而(!isDuplicate);
}
输入玩家1:或Q表示退出
安克尔
检查:错误
输入玩家2:或Q表示退出
辛格尔
检查:错误
输入玩家3:或Q表示退出
安克尔
核对:正确

答案,用于添加越来越多没有预定义大小的元素

while(isDuplicate==false);
更改为
while(!isDuplicate);

publicstaticvoidmain(字符串[]args){
扫描仪=新的扫描仪(System.in);
List nameOfPlayers=new ArrayList();
布尔值isDuplicate=false;
int i=0;
做{
System.out.println(“输入player”+(i+1)+“:或Q表示退出”);
字符串输入=scanner.next();
if(!input.equalsIgnoreCase(“Q”)){
if(nameOfPlayers.contains(输入)){
isDuplicate=真;
}否则{
图层名称。添加(输入);
isDuplicate=假;
}
System.out.println(“检查:+isDuplicate”);
}否则{
打破
}
i++;
}而(!isDuplicate);
}
输入玩家1:或Q表示退出
安克尔
检查:错误
输入玩家2:或Q表示退出
辛格尔
检查:错误
输入玩家3:或Q表示退出
安克尔
核对:正确

答案,用于添加越来越多没有预定义大小的元素

while(isDuplicate==false);
更改为
while(!isDuplicate);

publicstaticvoidmain(字符串[]args){
扫描仪=新的扫描仪(System.in);
List nameOfPlayers=new ArrayList();
布尔值isDuplicate=false;
int i=0;
做{
System.out.println(“输入player”+(i+1)+“:或Q表示退出”);
字符串输入=scanner.next();
if(!input.equalsIgnoreCase(“Q”)){
if(nameOfPlayers.contains(输入)){
isDuplicate=真;
}否则{
图层名称。添加(输入);
isDuplicate=假;
}
System.out.println(“检查:+isDuplicate”);
}否则{
打破
}
i++;
}而(!isDuplicate);
}
输入玩家1:或Q表示退出
安克尔
检查:错误
输入玩家2:或Q表示退出
辛格尔
检查:错误
输入玩家3:或Q表示退出
安克尔
核对:正确

答案,用于添加越来越多没有预定义大小的元素

while(isDuplicate==false);
更改为
while(!isDuplicate);

publicstaticvoidmain(字符串[]args){
扫描仪=新的扫描仪(System.in);
List nameOfPlayers=new ArrayList()