JAVA 数组下标越界问题

哪里有错啊publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);intx=in.nextI... 哪里有错啊
public static void main(String [] args)
{
Scanner in=new Scanner(System.in);
int x=in.nextInt();
int arr[] =new int[x];
for(int i=0;i<=x;i++)
{
arr[i]=i;
System.out.println(arr[i]);
}
展开
 我来答
山下玉
2012-07-12 · 超过11用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:21.8万
展开全部
你的循环条件错了。
因为数组的索引下标是从0开始的。如果定义了一个长度为3的数组int[] a=new int[3];
它里面的数据存放在a[0],a[1],a[2] 中 如果在有一个a[3] 就错了。所以你的循环条件要改一改 改成 for(int i=0;i<x;i++) 或者是 for(int i=0;i<=x-1;i++) 就好使了
残缺_天逆
推荐于2017-09-13 · TA获得超过107个赞
知道小有建树答主
回答量:99
采纳率:0%
帮助的人:100万
展开全部
解决办法:for(int i=0;i<x;i++)中的=号去掉就好了
错误原因:数组输出时范围越界,数组最后一个元素为arr[x-1],而不是arr[x]
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
佘文敏0HAc61
2012-07-12 · 超过36用户采纳过TA的回答
知道答主
回答量:186
采纳率:0%
帮助的人:108万
展开全部
for(int i=0;i<x;i++)

数组的下标是从0开始的 所以苦B程序员数数都是从0开始的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lj529455191
2012-07-12
知道答主
回答量:21
采纳率:0%
帮助的人:5.8万
展开全部
改为for(int i=0;i<x;i++)就行了 其中arr[x]越界了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
漂泊的鞋子
2012-07-12
知道答主
回答量:28
采纳率:0%
帮助的人:22.3万
展开全部
条件i不能小于等于x,只能小于x
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式