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);