Почему для l oop выход после вызова другого метода? - PullRequest
0 голосов
/ 29 февраля 2020

Я пытаюсь заполнить матрицу данными, считанными из текстового файла. Матрица - это просто двумерный массив, который уже создан с параметрами. У меня есть проверка, и массив создается до правильного размера на основе параметров. По какой-то причине, когда я сканирую следующее значение (значение) и затем пытаюсь вставить его в определенную точку массива, он успешно выполняется один раз, а затем завершается, не заполняя оставшуюся часть массива. Если метод insertAt удален, то циклы отлично работают, проходя все необходимые ячейки. По какой-то причине, когда метод добавляется и вызывается, он отлично работает для первой ячейки, но затем завершает работу.

Пока l oop, который вставляет значение в указанную c точку.

while(scan.hasNext()) {
    for(int i = 0; i < m1.row; i++) {
        for(int j = 0; j < m1.column; j++) {
            value = scan.nextInt();
            m1.insertAt(i, j, value);
        }
    }
}

Метод для матрицы, которая контролирует вставку значения.

public void insertAt(int row, int column, int value) {
    if(row >= 0 && column >= 0) {
        matrix[row][column] = value;
    } else {
        System.out.println("Error inserting value. Row: " + row + " Column: " + column);
    }
}

1 Ответ

0 голосов
/ 05 марта 2020

Обнаружено, что это происходит потому, что вы не можете поместить переменную в определенную c точку за один раз, даже если вы попытаетесь привести их в порядок. Если матрица инициализирована и заполнена нулями или какими-то другими значениями di git, она работает нормально. Это должно быть заполнено, создавая пустую матрицу с указанным c размером, не работает. В противном случае вам придется перезапускать весь метод каждый раз, чтобы добавить 1 переменную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...