猿问

java程序 显示无错误 只可以运行一种情况 求问?

for(int i=1;i<=num;i++){
			System.out.println("请输入您要租的第"+i+"种车的序号:"); 
			cars[i-1][i-1]=input.nextInt();
			System.out.println("请输入您要租的第"+i+"种车的数量:"); 
			cars[i-1][i]=input.nextInt();
			System.out.println("请输入您要租的第"+i+"种车的天数:");
			cars[i-1][i+1]=input.nextInt();
			int money=RentCar[cars[i-1][i-1]-1].price*cars[i-1][i+1]*cars[i-1][i];
			cars[i-1][i+2]=money;
			money=0;
			sum += cars[i-1][i];
			if(sum==num)
				break;
		}

/*运行时会出现

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4

at dada.TestData.show(TestData.java:59)

at dada.TestData.dada(TestData.java:19)

at dada.Test.main(Test.java:7)

*/


显示是

cars[i-1][i+2]=money;

的问题

愤怒的香柚
浏览 1210回答 3
3回答

yanrun

把循环条件改成i<=num-1试试

愤怒的香柚

感谢各位慕友的回答,我已经明白了,是二维数组越界的问题,列数是固定的所以第二个下标可以直接用数字代替。  

乔帮主

数组过界了,你把for(int i=1;i<=num;i++)改成for(int i=0;i<=num-1;i++)试试看呢
随时随地看视频慕课网APP

相关分类

Java
我要回答