Arraylist在java中不添加用户输入
此程序的目的是在每次输入坐标时打印一条信息,说明“您错过了”。但是,如果输入了重复的坐标,则应说明“此坐标已存在” 我同时使用了两个ArrayList,独立地存储x和y的值。我无法理解我的代码有什么问题。if语句似乎根本不起作用,userinput似乎也没有添加到ArrayList中Arraylist在java中不添加用户输入,java,arraylist,Java,Arraylist,此程序的目的是在每次输入坐标时打印一条信息,说明“您错过了”。但是,如果输入了重复的坐标,则应说明“此坐标已存在” 我同时使用了两个ArrayList,独立地存储x和y的值。我无法理解我的代码有什么问题。if语句似乎根本不起作用,userinput似乎也没有添加到ArrayList中 Scanner a=new Scanner(System.in); //Arraylist stores all entered x values. ArrayList<Integer> XValue
Scanner a=new Scanner(System.in);
//Arraylist stores all entered x values.
ArrayList<Integer> XValues=new ArrayList<Integer>();
//Arraylist stores all entered y values.
ArrayList<Integer> YValues=new ArrayList<Integer>();
int Nooftries=0;
int xcoord;
int ycoord;
for(int i=0;i<10;i++)
{
Nooftries++;
System.out.println("This is guess #"+Nooftries);
System.out.print("Please input your x location (0-3) : ");
xcoord=a.nextInt();
System.out.print("Please input your y location (0-3) : ");
ycoord=a.nextInt();
XValues.add(xcoord);
YValues.add(ycoord);
for(int c=0;c<XValues.size();c++)
{
if(xcoord==XValues.get(c) && ycoord==YValues.get(c))
{
System.out.println("You've already picked that spot.\n");
break;
}
else
{
System.out.println("You missed!");
}
}
}
Scanner a=新的扫描仪(System.in);
//Arraylist存储所有输入的x值。
ArrayList XValues=新的ArrayList();
//Arraylist存储所有输入的y值。
ArrayList YValues=新的ArrayList();
int Nooftries=0;
int xcoord;
国际协调;
对于(int i=0;i您可以这样做:
XValues.add(xcoord);
YValues.add(ycoord);
然后你检查。因为你已经添加了最近的输入值,所以当你检查之后,你的数组当然会包含这些值
您需要在添加之前进行检查。或者,您可以只检查XValues.size()-1
,但在添加之前进行检查可以更清楚地反映您的意图
if
语句正在工作;您的程序只是在做您让它做的事情。您只需要告诉它做正确的事情
你的逻辑的其余部分一目了然。你已经将xcoord
和ycoord
添加到for
循环前面的数组列表中,因此for
循环当然会发现它们,并显示你已经选择了那个点。你应该在for
循环之后添加它们。不要y并评估用户在您添加值后是否输入了给定的单元格。我确信这些数据结构符合您的目标