2012-06-28 71 views
-4

不工作如果在for循環

 int sum = 0; 
      for (int index = 0; index < ratpop; index++) { 


// verify whether population falls within blast radius 
      if (xcord[index + 1] - xcord[index] <= str 
        || ycord[index + 1] - ycord[index] <= str) 

{ 
       // if it does sum population of both points 
       sum += pop[index] + pop[index + 1]; 
      } 
      } 
      // prints out sum and the cordinates are not correct have to figure out 
      // later 
      System.out.println(xcord[1] + " " + ycord[0] + " " + sum); 
     } 
    } 

我不得不陣列語句列出X cordinates和Y之一的一個cordinates我的邏輯對於這一說法是,如果x cordinate或y cordinate比變量str小於總之,如果不是,但它不會這樣做總結它不管。這是我原來的問題,但沒有所有額外的東西可能阻止別人給它一個鏡頭,提前感謝所有使這個網站很好的愛好者,我爲誤會而道歉。

+4

歡迎訪問SO [索引+ 1]。發佈家庭作業並要求SO人員調試你的代碼在這裏被認爲是非常糟糕的形式,這解釋了downvotes。請閱讀[常見問題]和[問]發佈準則。 –

+0

作業?至少'index + 1'會給index = ratpop-1一個arrayOutOfBoundsException。我很確定,但這不是你在說的。 –

+0

您可能會發現使用記錄器在各個階段輸出信息很有用,並且可能使用IDE來逐步執行代碼。最終它必須是你,而不是我們,瞭解程序的邏輯 –

回答

1

問題是你試圖訪問索引超出數組邊界...

for (int index = 0; index < ratpop - 1; index++) { 

這將讓你沒有得到一個ArrayIndexOutOfBoundsException