Java I';我有一个比较问题

Java I';我有一个比较问题,java,Java,我有一个非常愚蠢的问题,已经困扰了我几个小时了。我制作了一个程序来比较一组点的斜率,并通过四个具有相同斜率的点画一条线。我的问题是,我将初始斜率作为每个斜率的比较器。然后将初始值与数组中的每个点进行比较,如果初始比较器的斜率与下一个斜率相同,计数器将递增。我的问题是,我不想在for循环期间更改初始坡度,但我无法使其工作。代码如下,我知道我有点含糊不清,所以如果你需要更多的信息,尽管问 for(int initial = 0; initial < counter/2 ; initial +

我有一个非常愚蠢的问题,已经困扰了我几个小时了。我制作了一个程序来比较一组点的斜率,并通过四个具有相同斜率的点画一条线。我的问题是,我将初始斜率作为每个斜率的比较器。然后将初始值与数组中的每个点进行比较,如果初始比较器的斜率与下一个斜率相同,计数器将递增。我的问题是,我不想在for循环期间更改初始坡度,但我无法使其工作。代码如下,我知道我有点含糊不清,所以如果你需要更多的信息,尽管问

 for(int initial = 0; initial < counter/2 ; initial ++)
        {
            int comparator = 1;
            for(int next = 1 ; next < counter/2 ; initial ++)
            {
                Point finalCompare = points[initial];
                Point initialCompare = points[comparator];
                Point initialPoint = points[initial];

                int counter_2 = 0;
                Point nextPoint = points[next];
                double initialSlope = (initialCompare.y - initialPoint.y/ initialCompare.x-initialPoint.x);
                double nextSlope = (nextPoint.y - initialPoint.y/ nextPoint.x - initialPoint.x);


                if(initialSlope == nextSlope)
                {
                    counter_2++;
                    StdOut.println("Counter: " + counter_2);
                    finalCompare = points[next];
                }
                if(counter_2 >= 3)
                {
                    StdOut.println("got here");
                    initialPoint.drawTo(finalCompare);
                    break;
                }
                StdOut.println(counter_2);
            }

            StdOut.println("comparator");
            comparator++;
        }

        }
for(int initial=0;initial=3)
{
StdOut.println(“到达这里”);
初始点。提取(最终比较);
打破
}
标准打印LN(计数器2);
}
标准输出打印项次(“比较器”);
比较器++;
}
}

你永远不会改变
下一步
。我想你想要

for(int next = 1 ; next < counter/2 ; next++)
我假设您希望将初始化移出内部循环:

int counter_2 = 0;
for(int next = 1 ; next < counter/2 ; next++)
int计数器_2=0;
for(int next=1;next

除此之外,请使用调试器逐步检查代码,并查看每一步都做了什么。这将帮助您发现键入错误(如果您了解正在实施的算法,否则请先尝试了解该算法)。

您永远不会更改
下一步。我想你想要

for(int next = 1 ; next < counter/2 ; next++)
我假设您希望将初始化移出内部循环:

int counter_2 = 0;
for(int next = 1 ; next < counter/2 ; next++)
int计数器_2=0;
for(int next=1;next

除此之外,请使用调试器逐步检查代码,并查看每一步都做了什么。这将帮助您发现键入错误(如果您了解正在实施的算法,否则请先尝试了解该算法)。

您永远不会更改
下一步。我想你想要

for(int next = 1 ; next < counter/2 ; next++)
我假设您希望将初始化移出内部循环:

int counter_2 = 0;
for(int next = 1 ; next < counter/2 ; next++)
int计数器_2=0;
for(int next=1;next

除此之外,请使用调试器逐步检查代码,并查看每一步都做了什么。这将帮助您发现键入错误(如果您了解正在实施的算法,否则请先尝试了解该算法)。

您永远不会更改
下一步。我想你想要

for(int next = 1 ; next < counter/2 ; next++)
我假设您希望将初始化移出内部循环:

int counter_2 = 0;
for(int next = 1 ; next < counter/2 ; next++)
int计数器_2=0;
for(int next=1;next
除此之外,请使用调试器逐步检查代码,并查看每一步都做了什么。这将帮助您查找键入错误(如果您了解正在实现的算法,否则请先尝试了解该算法)。

这些行

           double initialSlope = (initialCompare.y - initialPoint.y/ initialCompare.x-initialPoint.x);
           double nextSlope = (nextPoint.y - initialPoint.y/ nextPoint.x - initialPoint.x);
我想他们没有做你想做的,记住/有优先权,所以首先要除掉initialPoint.y/initialCompare.x,然后剩下的操作,我想你要做:

   double initialSlope = ((initialCompare.y - initialPoint.y)/ (initialCompare.x-initialPoint.x));
    double nextSlope = ((nextPoint.y - initialPoint.y)/ (nextPoint.x - initialPoint.x));
这些线

           double initialSlope = (initialCompare.y - initialPoint.y/ initialCompare.x-initialPoint.x);
           double nextSlope = (nextPoint.y - initialPoint.y/ nextPoint.x - initialPoint.x);
我想他们没有做你想做的,记住/有优先权,所以首先要除掉initialPoint.y/initialCompare.x,然后剩下的操作,我想你要做:

   double initialSlope = ((initialCompare.y - initialPoint.y)/ (initialCompare.x-initialPoint.x));
    double nextSlope = ((nextPoint.y - initialPoint.y)/ (nextPoint.x - initialPoint.x));
这些线

           double initialSlope = (initialCompare.y - initialPoint.y/ initialCompare.x-initialPoint.x);
           double nextSlope = (nextPoint.y - initialPoint.y/ nextPoint.x - initialPoint.x);
我想他们没有做你想做的,记住/有优先权,所以首先要除掉initialPoint.y/initialCompare.x,然后剩下的操作,我想你要做:

   double initialSlope = ((initialCompare.y - initialPoint.y)/ (initialCompare.x-initialPoint.x));
    double nextSlope = ((nextPoint.y - initialPoint.y)/ (nextPoint.x - initialPoint.x));
这些线

           double initialSlope = (initialCompare.y - initialPoint.y/ initialCompare.x-initialPoint.x);
           double nextSlope = (nextPoint.y - initialPoint.y/ nextPoint.x - initialPoint.x);
我想他们没有做你想做的,记住/有优先权,所以首先要除掉initialPoint.y/initialCompare.x,然后剩下的操作,我想你要做:

   double initialSlope = ((initialCompare.y - initialPoint.y)/ (initialCompare.x-initialPoint.x));
    double nextSlope = ((nextPoint.y - initialPoint.y)/ (nextPoint.x - initialPoint.x));

旁注:编写单元测试确实会对您有所帮助。您可以测试基本情况(如仅包含两个点或三个点的数组)和更复杂的情况,以隔离问题所在。设置断点和使用调试器也有很大帮助。旁注:编写单元测试确实会对您有所帮助。您可以测试基本情况(如仅包含两个点或三个点的数组)和更复杂的情况,以隔离问题所在。设置断点和使用调试器也有很大帮助。旁注:编写单元测试确实会对您有所帮助。您可以测试基本情况(如仅包含两个点或三个点的数组)和更复杂的情况,以隔离问题所在。设置断点和使用调试器也有很大帮助。旁注:编写单元测试确实会对您有所帮助。您可以测试基本情况(如仅包含两个点或三个点的数组)和更复杂的情况,以隔离问题所在。设置断点和使用调试器也有很大帮助。