Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arraylist在java中不添加用户输入_Java_Arraylist - Fatal编程技术网

Arraylist在java中不添加用户输入

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

此程序的目的是在每次输入坐标时打印一条信息,说明“您错过了”。但是,如果输入了重复的坐标,则应说明“此坐标已存在”

我同时使用了两个ArrayList,独立地存储x和y的值。我无法理解我的代码有什么问题。if语句似乎根本不起作用,userinput似乎也没有添加到ArrayList中

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并评估用户在您添加值后是否输入了给定的单元格。我确信这些数据结构符合您的目标