2016-08-19 62 views
0

我試圖將我的網格劃分爲四個象限,但我不斷收到錯誤。基本上,我想說我的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; 
     } 
    } 
+1

什麼是錯誤?你期望這段代碼能做什麼?你爲什麼總是回來?爲什麼在代碼塊中?很多問題...... – ppeterka

+0

如果你打算在第一次迭代時返回,你爲什麼要用'for'循環呢? – bradimus

回答

0

首先,有在具有for循環,因爲一旦你做return 1;,或任何回報,整個方法停止沒有意義。你可以做的只是在那裏輸出結果而不是返回,或者用x和y座標在一個數組列表中填充一個對象。無論如何,取消返回和輸出,它應該工作。

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; 
    } 
}