java 程序中 的数组的输入输出问题 为什么错误?
6个回答
展开全部
数组超界了,把for(i=1;i<=jinE.length;i++)改为for(i=1;i<jinE.length;i++)
jinE.length的大小为:5
输入的时候就输入到a[5]去了,而数组是从0开始的,所以下标只有0 1 2 3 4
5就超界了
希望能帮到你,还望采纳
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的for循环是从1开始的,是jinE的第二位
当循环进行到第四次的时候 i 的值等于 4 (也就是jinE的最后一位)。
jinE[i] = input.nextDouble(); 还可以将值存入,也就是你输入的32
然后循环结束 i++ 变成了 5 (依旧符合判断条件,再次进入循环)
但是此时,syso的那一句还可以执行,当时你在从console输入值的时候尝试将输入的double存入
jinE的 [5] 的位置,但是它的最高位是 4
所以会抛出这个异常
让 i 从0开始循环, syso那一句 改成 i + 1 就可以了,效果不变,而且还可以正常输入你例子中的数值
当循环进行到第四次的时候 i 的值等于 4 (也就是jinE的最后一位)。
jinE[i] = input.nextDouble(); 还可以将值存入,也就是你输入的32
然后循环结束 i++ 变成了 5 (依旧符合判断条件,再次进入循环)
但是此时,syso的那一句还可以执行,当时你在从console输入值的时候尝试将输入的double存入
jinE的 [5] 的位置,但是它的最高位是 4
所以会抛出这个异常
让 i 从0开始循环, syso那一句 改成 i + 1 就可以了,效果不变,而且还可以正常输入你例子中的数值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组下标是从0开始,当前数组大小为5,它的下标应为:0,1,2,3,4.
而你for中的下标是从1开始,实现下标为:1,2,3,4,5
你应将代码改动为:for(i = 0; i < jinE.length; i++)将可解决问题
而你for中的下标是从1开始,实现下标为:1,2,3,4,5
你应将代码改动为:for(i = 0; i < jinE.length; i++)将可解决问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-05-19 · 知道合伙人软件行家
关注
展开全部
循环错误,数组下标越界,改为
for(i=0;i<jinE.length;i++){
System.out.print("请输入第"+(i+1)+"比购物金额:");
jinE[i]=input.nextDouble();
}
就可以了!
for(i=0;i<jinE.length;i++){
System.out.print("请输入第"+(i+1)+"比购物金额:");
jinE[i]=input.nextDouble();
}
就可以了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组越界,你定义的 double 类型的数组长度是5,按照 java 标准数组下标从0开始,也就是说数组下标是 0 ~ 4,所以当你循环使用的时候应该是初始 i 为0,循环上限是 < 数组的长度,不能 <=
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询