Массив инициализируется динамически, не распознается позже - PullRequest
0 голосов
/ 27 сентября 2018

Я динамически инициализирую массив, считывая его размер из файла.Размер массива находится в первой строке входного файла.Таким образом, инициализация находится в блоке if

Пример кода

line="";
FileReader fr = new FileReader(fileName);
BufferedReader bf= new BufferedReader(fr);

int lineNo=0;
String firstLine="";
String[] mazeInfoStr;
int[] mazeInfo;
int[][] maze;
while((line=bf.readLine())!=null)
{
  if(lineNo==0)
  {
    firstLine=line;
    mazeInfoStr=line.split(" ");
    mazeInfo= new int[mazeInfoStr.length];
    for(int i=0;i<mazeInfoStr.length;i++)
    {
      mazeInfo[i]=Integer.parseInt(mazeInfoStr[i]);
    }
    maze=new int[mazeInfo[0]][mazeInfo[1]];
  }
  if(lineNo!=0 && lineNo<=mazeInfo[0]) //mazeInfo not initialized error here
  {
    int[] rookRow;
    String[] rookRowStr=line.split(" ");
    for(int i=0;i<rookRowStr.length;i++)
    {
      rookRow[i]=Integer.parseInt(rookRowStr[i]);
      maze[lineNo-1][i]=rookRow[i];
    }
  }
}

Я получаю ошибку, когда пытаюсь использовать массив mazeInfo позже (также то же самое для других массивов, таких как rookRow,лабиринт).Я понимаю, что массив инициализируется в блоке if, но что делать, если его нужно использовать позже в коде вне блока if?

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