Я динамически инициализирую массив, считывая его размер из файла.Размер массива находится в первой строке входного файла.Таким образом, инициализация находится в блоке 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?