java.lang.arrayindexoutofboundsexception: Index 13 out of bounds for length 13(数组越界)
当你使用不合法的索引访问数组时会报数组越界这种错误,数组arr的合法错误范围是[0, arr.length-1];当你访问这之外的索引时会报这个错。
例如:
while(n>0&&n<length){
if(num>nums[n]){
if(num<nums[n+1]){
break;
}else{
n++;
}
}
}
控制台输出的错误提示:
java.lang.ArrayIndexOutOfBoundsException: Index 13 out of bounds for length 13
at line 11, Solution.intToRoman
at line 54, __DriverSolution__.__helper__
at line 84, __Driver__.main
错误提示明确的告诉了我们错误的原因,这里我们的数组的长度是13,index不能够超过13,我们没有明确的写出13的index,但是在判断数字num和数组nums[]中的数的大小时,我们没有加上判断是否产生了数组越界就盲目的对index进行了+1,使用才导致了出现了错误。
如何改正:在改变index的时候,记得判定是否会产生数组越界。
while(n>0&&n<length){
if(num>nums[n]){
if(num<nums[n+1]){
break;
}else{
n++;
if(n==length-1){
break;
}
}
}
}