java - 尝试制作平均查找器,不使用 ReadLine(),仅使用控制台

标签 java console console-application command-line-arguments average

刚接触Java,基本上是昨天开始的。

好的,事情就是这样。

我正在尝试制作一个“平均器”,如果你想这么调用它的话,它接受随机数量的数字。我不必在程序中定义它,它必须是任意的。我必须使其在控制台上工作。

但我不能使用 Console.ReadLine() 或 Scanner 或任何其他。我必须通过控制台本身输入数据。因此,当我调用它时,我会在控制台中输入:

java AveragerConsole 1 4 82.4

调用该程序并给出三个参数:1、4 和 82.4

我认为我遇到的问题是,我似乎无法告诉它:

如果数组中的下一个字段为空,则计算平均值(检查代码中的第 14 行)

我的代码如下:

public class AveragerConsole
{
   public static void main(String args[])
   {
    boolean stop = false;
    int n = 0;
    double x;
    double total = 0;
    while (stop == false)
    {
        if (args[n] == "")  //Line 14
        {
            double average = total / (n-1);
            System.out.println("Average is equal to: "+average);
            stop = true;
        }
        else
        {
            x = Double.parseDouble(args[n]);
            total = total + x;
            n = n + 1;
        }
    }
  }
}

出现以下错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
        at AveragerConsole.main(AveragerConsole.java:14)

最佳答案

for(String number : args) {
  // do something with one argument, your else branch mostly
}

另外,你不需要 n,你已经有了参数的数量,它是 args 长度。 这是最简单的方法。

关于java - 尝试制作平均查找器,不使用 ReadLine(),仅使用控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19003895/

相关文章:

windows - Windows上Haskell中的Unicode控制台I/O

c# - 抑制控制台从导入的 DLL 打印

c - 用 C 语言进行 Win32 API 控制台编程

c - 如何在 C 程序中将 stdin 重定向回(在 Windows 下)

php - php 和 (exe) C++ 控制台应用程序之间的通信

java - FloatingActionButton Sub 无法调用 Codename One 中的另一个表单

java - 提取字符串

java - 图像在 ListView 中消失

android - VM 初始化期间发生错误 java/lang/NoClassDefFoundError : java/lang/Object

C++ Linux控制台清除屏幕的一个区域