
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]);
} 展开
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]);
} 展开
7个回答
展开全部
你的循环条件错了。
因为数组的索引下标是从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++) 就好使了
因为数组的索引下标是从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++) 就好使了
展开全部
解决办法:for(int i=0;i<x;i++)中的=号去掉就好了
错误原因:数组输出时范围越界,数组最后一个元素为arr[x-1],而不是arr[x]
错误原因:数组输出时范围越界,数组最后一个元素为arr[x-1],而不是arr[x]
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(int i=0;i<x;i++)
数组的下标是从0开始的 所以苦B程序员数数都是从0开始的
数组的下标是从0开始的 所以苦B程序员数数都是从0开始的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
改为for(int i=0;i<x;i++)就行了 其中arr[x]越界了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
条件i不能小于等于x,只能小于x
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询