gpt4 book ai didi

java - java中Arraylist不添加用户输入

转载 作者:太空宇宙 更新时间:2023-11-04 14:00:16 25 4
gpt4 key购买 nike

该程序的目的是在每次输入坐标时打印一条消息,提示“您错过了”。但是,如果输入重复的坐标,则应显示“该坐标已存在”。

我同时使用了 2 个数组列表,独立存储 x 和 y 的值。我无法理解我的代码出了什么问题。if 语句似乎根本不起作用,用户输入似乎也没有添加到数组列表中。

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!");
}
}
}

最佳答案

你这样做:

XValues.add(xcoord);
YValues.add(ycoord);

然后然后你检查一下。由于您添加了最近的输入值,因此当您随后检查时,您的数组当然将包含这些值。

您需要在添加之前进行检查。或者,您可以只检查 XValues.size() - 1,但在添加之前进行检查可以更清楚地反射(reflect)您的意图。

if 语句正在工作;你的程序只是按照你告诉它做的事情去做。您只需要告诉它做正确的事情!

乍一看,你的其余逻辑看起来不错。

关于java - java中Arraylist不添加用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29358883/

25 4 0