为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

愤怒的香柚 2016-07-13 15:44:42
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;的问题
查看完整描述

3 回答

?
yanrun

TA贡献317条经验 获得超240个赞

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

查看完整回答
1 反对 回复 2016-07-13
  • 愤怒的香柚
    愤怒的香柚
    谢谢回答 刚刚试了一下 还是会出现一样的问题 显示的异常在cars[i-1][i+2]=money;这一行
?
愤怒的香柚

TA贡献2条经验 获得超0个赞

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

查看完整回答
反对 回复 2016-07-14
?
乔帮主

TA贡献184条经验 获得超67个赞

数组过界了,你把for(int i=1;i<=num;i++)改成for(int i=0;i<=num-1;i++)试试看呢

查看完整回答
反对 回复 2016-07-13
  • 愤怒的香柚
    愤怒的香柚
    谢谢您的回答 刚刚试了一下 还是会出现一样的问题 显示的异常在cars[i-1][i+2]=money;这一行
  • 乔帮主
    乔帮主
    偶偶,看来是我这边没弄清楚!
  • 3 回答
  • 1 关注
  • 1209 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信