索引超出了数组界限

Boolean file = false;
string path = Server.MapPath("~/userimg/");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
else
{
if (FileUpload1.HasFile)
{
string filex = System.IO.Path.GetExtension(FileUpload1.FileName).ToString();
string[] aliex = { "jpg", "gif", "png" };
for (int i = 0; i <= aliex.Length; i++)
{
if (filex == aliex[i])
{
file = true;
Label1.Text = "开始上传!";
}
}
}
for (int i = 0; i <= aliex.Length; i++)
这句出错,索引超出了数组界限
那应该如何修改呢?要把I改成小于等于2的话就很不方便了

1、定义一个int整形类型的数组,初始化10个整数,从1到10;然后循环依次输出11次,由于数组里只有10个数。

2、第11次是抛出了数据越界的错误:java.lang.ArrayIndexOutOfBoundsException。

3、将程序修改一下,保证程序不会非法的运行到第11次,获取数组的长度Array.length;当我们从数组取数时控制在这个长度范围内进行。

4、通过修改,程序得到正确执行。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-03
索引超出了数组界限是指在通过索引获取数组内的值时,索引超出了数组的总长度。
例如:int[]
Array
=
{1,2,3,4,5,6,7,8,9,10};
在这个int型数组Array中有10个元素,它的总长度是10,索引是0-9。
当使用for循环获取数组内的值时,如果索引是10,则会报错,错误原因是
索引超出了数组界限。
for(int
i=0;i<11;i++)
{
System.
out
.println(
String.
format(“
第%d元素的值是%\n",i+1
,Array[i]));
}
扩展资料
数组的特点:
1、数组是相同数据类型的元素的集合。
2、数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。
3、数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。
第2个回答  2019-08-26
比如你的数组里只有4个元素,你的程序调用了他的第六个元素,他不存在,就无法索引,然后报错
第3个回答  2020-05-05
static
int
value;/*在第一次加载时运行,value的值为0*/
static
point[]
point
=
new
point[value];/*在第一次加载时运行,而value的值为0,因此point.length的值为0(数组元素个数为0*/
point[i].y
=
600
-
(convert.toint32(ds.tables["运动"].rows[i][1])
*
20)
/
100;/*因此运行此句时出错,索引越界*/
解决办法:
在page_load()方法里构造数组point(注意是在首次加载时)
希望回答对你有帮助。
第4个回答  推荐于2017-09-23
嗯,是的 在C#中数组下标是从0开始的. 也就是说

如果一个数组有三个元素.
应该是 aliex[0] ,aliex[1] , aliex[2]
这时候 aliex.Length = 3

那么 aliex[3] 当然已经超出了数组的界限.数组中根本不存在下标为3的元素本回答被提问者采纳
相似回答