编译一段代码,定义一个100个元素的一维数组,并给每一个元素赋值,所赋值为从2开始的100个偶数
publicclasszxp{publicstaticvoidmain(String[]args){intlimit=100;int[]a=newint[limit/2]...
public class zxp {
public static void main(String[]args){
int limit=100;
int[]a=new int[limit/2];
for(int i=0;i<=a.length;i++)
a[i]=i*2;
for(int b:a)
System.out.print(b+"\t");
}
}
我这条代码为什么可以编译却不能执行 展开
public static void main(String[]args){
int limit=100;
int[]a=new int[limit/2];
for(int i=0;i<=a.length;i++)
a[i]=i*2;
for(int b:a)
System.out.print(b+"\t");
}
}
我这条代码为什么可以编译却不能执行 展开
1个回答
展开全部
a[50]是可以存储50个变量,可是下标是从a[0]到a[49],
你在存值的时候给a[50]也赋值了,a[50]=100,
这当然就越界了
for(int i=0;i<=a.length;i++) 这里不要 = 号试试看
你在存值的时候给a[50]也赋值了,a[50]=100,
这当然就越界了
for(int i=0;i<=a.length;i++) 这里不要 = 号试试看
追问
改好了 可是打印出的第一位永远都是0怎么办,能不能从2开始打印的
追答
当然是0了.
for(int i=1;i<=a.length;i++) 把这里改回来<=, 前面初始改I=1那你的结果就好了.
这是很基础的知识,稍微认真一点就可以改好了.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |