动态初始化的数组以后无法识别

时间:2018-09-27 18:18:48

标签: java arrays initialization

我正在动态初始化一个数组,从文件中读取它的大小。数组的大小在输入文件的第一行之内。因此,初始化在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,maze)也是如此。我意识到该数组是在if块中初始化的,但是如果以后需要在if块之外的代码中使用它,该怎么办?

0 个答案:

没有答案