我正在动态初始化一个数组,从文件中读取它的大小。数组的大小在输入文件的第一行之内。因此,初始化在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块之外的代码中使用它,该怎么办?