package helloworld;
public class windspeed {
public static void main(String args[]) {
int t = Integer.parseInt(args[44]); //this is the array input for temperature
int v = Integer.parseInt(args[15]); //this is the array input for wind speed
double x = Math.pow(v, 0.16); //this is the exponent math for the end of the equation
if (t < 0) {
t = t*(-1); //this is the absolute value for temperature
}
double w = (35.74 + 0.6215*t)+((0.4275*t - 35.75)* x); //this is the actual calculation
if (t<=50 && v>3 && v<120) { //this is so the code runs only when the equation works
System.out.println(w);
}
if (t>50 || v<3 || v>120){
System.out.println("The wind chill equation doesn't work with these inputs, try again.");
}
}
}
这给了我一个ArrayIndexOutOfBounds
错误。我在[]
放入的内容并不重要我收到错误...为什么?我该如何解决?
答案 0 :(得分:0)
原因是
int t = Integer.parseInt(args[44]);
你有45个参数吗?
答案 1 :(得分:0)
这里的问题是你创建数组的方式:
int t = Integer.parseInt(args[44]); //this is the array input for temperature
int v = Integer.parseInt(args[15]); //this is the array input for wind speed
args
指的是传递给程序的main()
方法的命令行参数。如果你尝试在没有45个参数时解析args[44]
(0索引,记得吗?),你最终会将null
分配给你的数组。
所以,你后来最终得到的只是ArrayIndexOutOfBoundsException
因为你不能索引一个空数组。
int t[] = new int[44]; // please notice the brackets
int v[] = new int[15]; //this is the array input for wind speed
如果您需要的只是尺寸
,上述方法就足够了int[] t
或int t[]
。他们中的任何一个都会做,但括号需要在那里。 Math.abs()
查找绝对值。为您节省if()
答案 2 :(得分:0)
int t = Integer.parseInt(args[44]); //this is the array input for temperature
int v = Integer.parseInt(args[15]); //this is the array input for wind speed
args
,即args
是main方法的命令行参数。你是否在args
内有45个元素,如果不是它会抛出ArrayIndexOutOfBounds
。
要知道长度,请使用:
args.length
比你可以继续。希望能帮助到你。
答案 3 :(得分:-1)
在这些方面:
int t = Integer.parseInt(args[44]); //this is the array input for temperature
int v = Integer.parseInt(args[15]); //this is the array input for wind speed
你说你用至少45个参数运行程序!!其中15位是风速,44位是温度。
您可能正在使用NO参数运行程序或使用一个参数。
请注意,如果您使用参数运行程序:“hello world how are you”该程序将具有大小为5的args,hello
中的args[0]
,world
中的args[1]
等等。
答案 4 :(得分:-1)
你现在拥有的是: - 取第15个命令行参数并转换为Integer; - 获取第44个命令行参数并将其转换为Integer。 你确定它是你需要的吗?