我有这段代码来获取args的平均值:
public class Mariamne
{
public static void main(String[] args)
{
System.out.print("\n");
try
{
int sum = 0;
float prom = 0;
for (int i = 0; i<=args.length; i++)
{
int a = Integer.parseInt(args[i]);
sum = a + sum;
prom = prom + 1;
}
System.out.println(sum/prom);
}
catch(Exception e)
{
System.out.println("Error.");
}
}
}
由于某种原因,我无法让它工作(没有例外,它说“数组越界”),有没有办法来定义args的大小?请帮忙!
答案 0 :(得分:5)
您正在尝试访问索引args.length
。将您的for
更改为此
for (int i = 0; i < args.length; i++) // Without the = in the condition
在任何数组中,最大可访问索引始终为array.length - 1
。这就是为什么当您尝试访问args.length
数组中的args
索引时,它会抛出ArrayIndexOutOfBoundsException
。
答案 1 :(得分:0)
你超过了int变量i的args的索引限制。
索引可以在0到len-1之间。
只需将i<=args.length
替换为i<args.length
或i<=args.length-1
。