java 程序中 的数组的输入输出问题 为什么错误?

 我来答
Monubia
推荐于2016-04-29 · TA获得超过8961个赞
知道大有可为答主
回答量:4373
采纳率:75%
帮助的人:1323万
展开全部

数组超界了,把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就超界了


希望能帮到你,还望采纳

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Roc大周
2015-05-19 · TA获得超过447个赞
知道小有建树答主
回答量:273
采纳率:50%
帮助的人:146万
展开全部
你的for循环是从1开始的,是jinE的第二位
当循环进行到第四次的时候 i 的值等于 4 (也就是jinE的最后一位)。
jinE[i] = input.nextDouble(); 还可以将值存入,也就是你输入的32
然后循环结束 i++ 变成了 5 (依旧符合判断条件,再次进入循环)
但是此时,syso的那一句还可以执行,当时你在从console输入值的时候尝试将输入的double存入
jinE的 [5] 的位置,但是它的最高位是 4
所以会抛出这个异常

让 i 从0开始循环, syso那一句 改成 i + 1 就可以了,效果不变,而且还可以正常输入你例子中的数值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
homeybeenow
2015-05-19 · 超过12用户采纳过TA的回答
知道答主
回答量:21
采纳率:0%
帮助的人:20.8万
展开全部
数组下标是从0开始,当前数组大小为5,它的下标应为:0,1,2,3,4.

而你for中的下标是从1开始,实现下标为:1,2,3,4,5
你应将代码改动为:for(i = 0; i < jinE.length; i++)将可解决问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
青鸟中关村专家
2015-05-19 · 知道合伙人软件行家
青鸟中关村专家
知道合伙人软件行家
采纳数:1734 获赞数:8440
就职于北大青鸟中关村,自2004年踏入北大青鸟这个行业,已经有11年工作经验和8年的培训经验,寓教于乐

向TA提问 私信TA
展开全部
循环错误,数组下标越界,改为
for(i=0;i<jinE.length;i++){
System.out.print("请输入第"+(i+1)+"比购物金额:");

jinE[i]=input.nextDouble();

}

就可以了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
白菜一颗
2015-05-19 · TA获得超过8916个赞
知道大有可为答主
回答量:3260
采纳率:69%
帮助的人:3728万
展开全部
数组越界,你定义的 double 类型的数组长度是5,按照 java 标准数组下标从0开始,也就是说数组下标是 0 ~ 4,所以当你循环使用的时候应该是初始 i 为0,循环上限是 < 数组的长度,不能 <=
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式