Java 数组indexoutofboundsException:3
无法理解为什么我的Java 数组indexoutofboundsException:3,java,arrays,for-loop,indexoutofboundsexception,Java,Arrays,For Loop,Indexoutofboundsexception,无法理解为什么我的int[]totalOpen=newint[n][n]数组连续越界异常:3。我的公共静态空隙开放系数(char[][]mazeValue,int n)方法的计算工作正常;但是,在我的openfactor(char[][]mazeValue,int n)中的以下两行上,我得到了一个数组索引越界错误。我似乎永远无法通过整个数组,甚至无法接近。请帮忙!:) import java.util.*; 公开课游戏{ 公共静态void main(字符串[]args){ 扫描仪kbd=新扫描
int[]totalOpen=newint[n][n]代码>数组连续越界异常:3。我的公共静态空隙开放系数(char[][]mazeValue,int n)
方法的计算工作正常;但是,在我的openfactor(char[][]mazeValue,int n)
中的以下两行上,我得到了一个数组索引越界错误。我似乎永远无法通过整个数组,甚至无法接近。请帮忙!:)
import java.util.*;
公开课游戏{
公共静态void main(字符串[]args){
扫描仪kbd=新扫描仪(System.in);
System.out.println(“输入一个整数:”);
int n=kbd.nextInt();
char[]mazeValue=新字符[n+1][n+1];
System.out.println(“输入路径:”);
对于(int i=0;i=1)
{
if(mazeValue[i-1][j-1]='O')
计数++;
}
//System.out.println(“cout:+count”);
如果(i-1>=1)
{
if(mazeValue[i-1][j]='O')
计数++;
}
//System.out.println(“cout:+count”);
如果(j+1看:
抛出以指示已使用非法索引访问数组。索引为负数或大于或等于数组的大小
您正在对java数组使用基于1的索引,java数组使用基于0的索引():
不幸的是,for
循环中的逻辑似乎也采用了基于1的索引,因此您也必须更改它。我使用1,因为我的当前数组周围有一个X值的边界。如果我从0开始,它将只存储我的边界的一部分,不是吗?是的,它只存储我的边界。然后您需要在中声明它为t[]TotalOpen=新整数[n+1][n+1]
,在这种情况下,索引将是0,1,…,n
。无论哪种方式,java数组索引都是基于0的,因此最大索引比长度少一个。我这样做了,它确实起作用,它保持在边界内,但这样做会导致它存储我的不可见边界。这就是我的方法,它仍然保持存储不可见边界。
totalOpenness[i][j] = openness;
System.out.println("TOTAL OPENESS FOR : [" + i + "]" +"[" + j + "] IS " +totalOpenness[i][j]);
for(int i = 1; i<=n; i++)
for(int j=1;j<=n;j++)
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)