2016-03-01 49 views
0

異常在線程 「主要」 java.lang.ArrayIndexOutOfBoundsException:5 在Grid.main(Grid.java:25)網格繪製問題/錯誤

試圖編譯時,會發生上述錯誤:

class Grid { 
// Grid drawing method 
    static void drawGrid(int n) { 
     StdDraw.setXscale(0, 2*n); 
     StdDraw.setYscale(0, 2*n); 
// StdDraw.jar setter for scale method called 
     for (int v = 1; v <= n; v++) { 
      // variable colours lower left square red. 
      for (int k = 1; k <= n; k++) { 
       if ((v+k) % 2 == 0) 
        StdDraw.setPenColor(StdDraw.RED); 
       else 
        StdDraw.setPenColor(StdDraw.BLACK); 
       StdDraw.filledSquare(2*v-1, 2*k-1, 1); 
      } 
     } 
    } 

    public static void main(String[] args) { 
     drawGrid(Integer.parseInt(args[5])); 
     // calls the drawGrid method to draw the grid with defined values 
    } 
} 

我知道這可以理解爲一個簡單的程序和基本的錯誤你們中的大多數,只是一個無辜的小紅色和黑色的網格,但它難倒我。我想我明白錯誤意味着什麼,我試圖訪問程序無法繪製的網格大小?這是我從本網站和其他人的資源研究中收集到的,我只是不明白爲什麼5的值會拋出錯誤。我試圖改變這個價值,無論數量如何都是不分青紅皁白的。我認爲增量計算可能存在問題或其他問題?

這個程序在NetBeans上成功編譯,根據我的同事,但在我家的Eclipse設置我得到了「OutOfBounds」錯誤。

當然,我意識到這可能稍微微不足道,但已經盡我所能去理解爲什麼我的同事代碼失敗了,我也可以自己發現一些小問題。所以,我提出你,Stack Overflow社區。什麼可能是這個錯誤的原因?

P.S.我很好奇Netbeans是否真的有效,因爲我正在採用適度值得信賴的同事的話,但目前沒有辦法在此係統上設置JDK。如果能夠訪問該軟件的人可以測試此功能,我會非常感激!

回答

0

錯誤似乎發生在您的主要方法中。 args[5]是您的程序的第6個命令行參數。根據你的代碼,我假設它應該是drawGrid(Integer.parseInt(args[0]));。這將訪問第一個命令行參數。

至於它是否適用於Netbeans,唯一的辦法就是試試看!

+0

是的,這是給出錯誤的值,但它是不加區分的。無論這個值是什麼,它都不會影響錯誤。 –

+0

你是否傳遞了命令行參數? (運行你的程序時使用類似'java grid 3'的東西將會通過命令行參數運行它) – Toberumono

+0

drawGrid(Integer.parseInt(args [5])); 這不是命令行參數嗎? –