Java 从命令行查找双值的平均值?
我写这篇文章是为了从命令行中获得两个值并求平均值,但它似乎无法计算。我应该先初始化数组吗Java 从命令行查找双值的平均值?,java,Java,我写这篇文章是为了从命令行中获得两个值并求平均值,但它似乎无法计算。我应该先初始化数组吗 public class Average { public static void main(String[] args) { double avg=0; double num=0; for (int i=0; i>=args.length; i++) num = Double.parseDouble(args[i]
public class Average {
public static void main(String[] args) {
double avg=0;
double num=0;
for (int i=0; i>=args.length; i++)
num = Double.parseDouble(args[i]);
avg+=num;
System.out.println(avg/args.length);
}
}
谢谢
编辑:这是成品,我通过添加花括号和修复逻辑修复了for循环。最后一行不需要演员阵容,但这是个好主意
public class Average {
public static void main(String[] args) {
double avg=0;
double num=0;
for (int i=0; i<args.length; i++){
num = Double.parseDouble(args[i]);
avg+=num;
}
System.out.println(avg/args.length);
}
}
公共类平均值{
公共静态void main(字符串[]args){
双平均值=0;
双数=0;
对于(int i=0;i您可能是指:
for(int i=0;i
因为这是这里的主要逻辑问题,所以还有其他(语法)问题需要解决,其他人也提到过(例如,参见@seanmk关于作用域循环重要性的回答)
(注意:这是在@seanmk的答案更新为附加信息之前编写的,当时它只考虑了括号和循环范围的问题)。这里有几个问题。其中一个问题是,只有当args的长度为0时,循环才会执行(然后会崩溃)!这是因为循环中的条件错误。我们可以通过更改为while循环使这一点更加明显
int i = 0;
while (i >= args.length) i++;
您应该更改>=以在for语句中添加花括号。我会检查以确保长度不是零。您的代码中充满了初学者的错误,您需要学习如何自己发现和更正。-1“这个问题没有显示任何研究成果,它不清楚或没有用处。”这个问题在未来的内容和标题上几乎不可能对任何人有所帮助。从积极的一面来看,我希望所有初学者程序员都能投入同样的努力,把他们的代码格式化得像OP一样好。我预测他/她将来会成功。是的,区块范围也很重要。+1,seanmk。t错了吗他投了双。没必要。谢谢,我没有看到简单的错误。而且投法也是一个好主意,非常感谢。我继续并更新了我的答案,包括有条件的修复。谢谢你注意到jahroy!如果解决了你的问题,请勾选答案为已接受,谢谢。
for (int i=0; i < args.length; i++)
num = Double.parseDouble(args[i]);
avg+=num;
for (int i=0; i < args.length; i++) {
num = Double.parseDouble(args[i]);
avg+=num;
}
System.out.println(avg/(double)args.length);