我在命令行上输入五个或更多变量并用它们创建一个数组。然后我添加这些值,但我不确定为什么它不起作用。
我的代码是:
public static void main(String args[]) {
int t = args.length;
int[] u;
u = new int[t];
int v = 0;
for (int i=0; i<t; i++) {
u[i]= Integer.parseInt(args[i]);
for (int j=0; j<t; j++) {
v = v + u[i];
System.out.println(v);
}
}
}
但是,如果我输入 5 个,则输出 25。
我不确定我哪里出了问题,任何帮助将不胜感激。
注意:我的任务要求我不使用库函数。
最佳答案
1) 您在另一个 for
循环内有一个 for
循环,导致了问题。
2) 还要注意变量命名 --> 使用表达/描述其用途的变量名称。变量名 t
不太具有描述性。
3)也不需要创建额外的变量/数组。只需循环输入并将它们添加到总和中即可。
public static void main(String args[]) {
int sum = 0;
for (int i=0; i<args.length; i++) {
sum += Integer.parseInt(args[i]);
}
System.out.println(sum);
}
<小时/>
4) 感谢 Java 8,你可以做一个(有点复杂的)单行代码:
public static void main(String args[]) {
System.out.println(Arrays.stream(myarray).mapToInt(Integer::parseInt).sum());
}
- 创建字符串流 (
Arrays.stream(args)
) - 将它们转换为 IntStream (
mapToInt(Integer::parseInt)
) - 通过
sum()
获取 IntegerStream 的总和
关于Java:命令行输入的总和给出数组*答案的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47472517/