2016-03-22 3 views
-1

Я понимаю, что этот вопрос - о ArrayIndexOutOfBoundsException - ответил много раз, и я приношу свои извинения за отправку его снова, но я не могу понять, как исправить следующий код. В основном мне нужно создать самоуничтожительную прогулку в решетке 100х100, затем изменить размер решетки до 1000х1000 и имитировать прогулку, чтобы увидеть, сколько шагов она предпримет, прежде чем поймать себя в ловушку и не сможет никуда идти. Любая помощь очень ценитсяЯ избегаю случайного блуждания

`

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

Вы должны добавить проверку длины аргументов: 'if (args.length <2) {System.err.println (" Использование: SelfAvoidingWalk "); System.exit (1);} –

ответ

1

ArrayIndexOutOfBoundsException

Эта ошибка возникает при попытке Acces индекс массива он не имеет.

В вашем случае

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

это потерпит неудачу, если вы не прошли какие-либо аргументы в командной строке. Я бы проверил, как вы используете класс.

+0

Спасибо! Это помогло. – StrugglingEngrStudent

Смежные вопросы