2016-03-22 8 views
-1

私は、この質問(ArrayIndexOutOfBoundsExceptionについて)が何度も答えられていることを理解していますが、再度投稿することはお詫び申し上げますが、次のコードを修正する方法を理解できないようです。基本的には、100x100格子の自己回避型歩行を作成し、格子サイズを1000x1000に変更して歩行をシミュレートして、それ自体をトラッピングしてどこにも行かないうちに必要な歩数を確認する必要があります。すべてのヘルプは大幅セルフ・ランダム・ウォークを避ける

`

import java.util.Scanner; 
public class SelfAvoidingWalk{ 
public Scanner scan = new Scanner(System.in); 
public static void main(String[] args){ 

    int N = Integer.parseInt(args[0]);  % I get the error here 
    int Trials = Integer.parseInt(args[1]);  % and here because args[0] 




    for (int t = 0; t < Trials; t++) { 
     boolean[][] a = new boolean[N][N]; 
     int x = N/2, y = N/2;    
+3

これは、 'args'が空であることを示しています。引数で正しく実行していますか? – Maljam

+1

argsの長さをチェックする必要があります。 'if(args.length <2){System.err.println(" Usage:SelfAvoidingWalk "); System.exit(1);} –

答えて

1

は、ArrayIndexOutOfBoundsException

を高く評価しているあなたはそれを持っていない配列のインデックスをアクセスもしようとすると、このエラーが発生します。

あなたの場合

int N = Integer.parseInt(args[0]); 

コマンドラインに引数を渡されていない場合、これは失敗します。私はどのようにクラスを実行しているかを確認します。

+0

ありがとう!これは助けになりました。 – StrugglingEngrStudent