分裂为Quandrants

时间:2016-08-19 17:35:26

标签: java

我正在尝试将网格分成四个象限,但我一直在收到错误。基本上,我想说我的x坐标在0到50之间,与我的y坐标相同。

然后从那里,我想用我的x和y坐标分割网格。代码中的第二个x表示我需要创建一个method(int,boolean)。返回后我的所有整数都有错误。我是Java的新手,所以任何帮助或见解都会很棒!

GridValueLayer habitat = new GridValueLayer("habitat", 0.00, true, 50, 50);
context.addValueLayer(habitat);{
    for (int x = 0; x >= 0, x <= 50){
        for (int y = 0; y >= 0; y <= 50){

           if(x > 0 && y > 0)
             return 1;
           else if(x < 0 && y > 0)
             return 2;
           else if(x < 0 && y < 0)
             return 3;
           else if (x<0 && y >0) 
             return 4; 
        }
    }

2 个答案:

答案 0 :(得分:0)

首先,没有使用for循环的目的,因为一旦你执行return 1;或任何返回,整个方法就会停止。您可以做的只是在那里输出结果而不是返回,或者使用x和y坐标填充arraylist中的对象。在任何情况下,请删除返回和输出,它应该可以工作。

答案 1 :(得分:0)

我不确定错误是什么(或者你想要代码完成的是什么),但我不认为你在那里编写代码。 for循环语法是一个初始条件,何时停止,以及由分号分隔的增量。对于增量,你给了一个条件。你还省略了一个分号,并且addValueLayer有一个额外的大括号。我仍然认为这段代码不会按照您的意愿行事,但这是一个尝试工作的地方。

GridValueLayer habitat = new GridValueLayer("habitat", 0.00, true, 50, 50);
context.addValueLayer(habitat);
for (int x = 0; x >= 0; x++) {
    for (int y = 0; y >= 0; y++) {
        if(x > 0 && y > 0)
            return 1;
        else if(x < 0 && y > 0)
            return 2;
        else if(x < 0 && y < 0)
            return 3;
        else if (x<0 && y >0) 
            return 4; 
    }
}