use*_*051 -2 java printing arrays multidimensional-array indexoutofboundsexception
我正在用Java制作一个地下城游戏.我创建了一个将地图存储在2D数组中的方法.该数组如下所示:
[[#, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #],
[#, ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., #],
[#, ., ., ., ., ., ., G, ., ., ., ., ., ., ., ., E, ., #],
[#, ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., #],
[#, ., ., E, ., ., ., ., ., ., ., ., ., ., ., ., ., ., #],
[#, ., ., ., ., ., ., ., ., ., ., G, ., ., ., ., ., ., #],
[#, ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., #],
[#, ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., #],
[#, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #]]
Run Code Online (Sandbox Code Playgroud)
我现在正在尝试编写一个函数,以便我可以在游戏中打印出地图.到目前为止,我想出了这个:
public void printMap(char[][] map) {
for (int i = 0; i < map.length; i++) {
for (int j = 0; j < map[i].length; i++) {
System.out.print(map[i][j]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,在打印出第一行后,我收到此错误消息.
#########Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9
Run Code Online (Sandbox Code Playgroud)
为什么我收到此错误消息?我怎么能在将来阻止它呢?
for(int j=0; j < world[i].length; i++){
// ^ ^ ^
// J J I <- No! Bad dog :-)
Run Code Online (Sandbox Code Playgroud)
您可能希望让变量更加一致.
通过增加i
在j
循环,你靠近保证你会超越结束world
阵列("近",因为如果"子阵"中的一个具有大小为零,可能不会发生,但是这不太可能在这里,根据您的输入数据).
归档时间: |
|
查看次数: |
95 次 |
最近记录: |