我正在制作一个迷宫求解器。由于某种原因每次都标有' - >'的行到达,输入“输入高度:”。它就像那条线(当它到达时没有运行)以某种方式使方法循环。
private void makeMap() {
Map map; //used to convert the char array into a graph
int height; //the height of the map by user input
char[][] array; //used to store the char map
System.err.println("Enter height: ");
height = scanner.nextInt(); //gets and stores the height from the user
array = new char[height][]; //initializes the map with input height
for(int i=0; i<height; i++) { //adds row by row to the map array
System.err.print("Enter next line of map: ");
array[i] = scanner.next().toCharArray();
}
--> map = new Map(array); //initializes the map by passing the char array
graph = map.makeGraph(); //creates a graph from the char array
}
我标有' - &gt;'在哪里我相信我的问题奠定了。我在标记行之前放置的任何代码都将执行,但是一旦到达该行,它就会循环回到此方法的顶部。下面是Map构造函数:
public Map(char[][] passMap) {
adjList = new Vertex[map.length*map[0].length];
map = passMap; //stores the passed map
}
任何帮助都比没有帮助更好。我已经在这几个小时了。感谢。
答案 0 :(得分:1)
您的地图变量可能未初始化。变化:
adjList = new Vertex[map.length*map[0].length];
要:
adjList = new Vertex[passMap.length*passMap[0].length];
我还会将您的System.err.println()
来电更改为System.out.println()
。第一个用于错误输出,第二个用于正常控制台输出。
答案 1 :(得分:0)
为什么不学习使用调试器(这很简单),只需在该行上设置断点即可。那会很快给你答案。