使用用户输入获取平均值(JAVA)

使用用户输入获取平均值(JAVA),java,methods,Java,Methods,我试图获取用户输入,并使用他们的输入来计算平均值。我遇到的问题是,我的代码没有提示用户使用整数来计算平均值 这只是一段代码 public static double[] getUserInput() { Scanner sc = new Scanner(System.in); List<Double> inputList = new ArrayList<Double>(); System.out.println("Please enter a

我试图获取用户输入,并使用他们的输入来计算平均值。我遇到的问题是,我的代码没有提示用户使用整数来计算平均值

这只是一段代码

public static double[] getUserInput() {

    Scanner sc = new Scanner(System.in);

    List<Double> inputList = new ArrayList<Double>();

    System.out.println("Please enter a number");


    System.out.println(inputList);
    double arr[] = new double[inputList.size()];
    System.out.println(inputList.size());
    return arr;
}

public static double arithmeticMean(double[] nums) {

    double mean = 0;
    double sum = 0;

    // gets the mean
    try {
        for (int i = 0; i < nums.length; i++) {
            sum = sum + nums[i];
        }
        mean = sum / nums.length;
    } catch (ArithmeticException ex) {
        System.out.println(ex);
    }

    return mean;
}
publicstaticdouble[]getUserInput(){
扫描仪sc=新的扫描仪(System.in);
List inputList=新建ArrayList();
System.out.println(“请输入一个数字”);
系统输出打印项次(输入列表);
double arr[]=新的double[inputList.size()];
System.out.println(inputList.size());
返回arr;
}
公共静态双算术平均值(双[]nums){
双平均值=0;
双和=0;
//中庸
试一试{
对于(int i=0;i
问题是您从未读取输入。实现扫描仪和读取用户输入的正确方法如下:

Scanner sc = new Scanner(System.in);

double userInput = 0;

System.out.print("Please enter a number");

userInput = sc.nextDouble();    // This is what you are missing
因此,您可以将变量
userInput
添加到ArrayList中,或者直接读取到ArrayList中

更新:

这就是你想要的代码。它将询问用户输入的数量,然后将每个输入添加到数组中

public static double[] getUserInput() {

    Scanner sc = new Scanner(System.in);

    List<Double> inputList = new ArrayList<Double>();

    System.out.println("Please enter how many numbers you will be inputing");
    int numberOfInputs = sc.nextInt();

    for (int i = 0; i < numberOfInputs; i++) {
        System.out.println("Please enter a number");
        double userInput = sc.nextDouble(); // Store user inputed double into temporary variable
        inputList.add(userInput); // Add temporary variable into ArrayList
    }
    sc.close();

    double[] arr = new double[inputList.size()];
    for (int i = 0; i < arr.length; i++) {
        arr[i] = inputList.get(i);
    }
    return arr;
}
publicstaticdouble[]getUserInput(){
扫描仪sc=新的扫描仪(System.in);
List inputList=新建ArrayList();
System.out.println(“请输入要输入的数字”);
int numberOfInputs=sc.nextInt();
对于(int i=0;i
问题是您从未读取输入。实现扫描仪和读取用户输入的正确方法如下:

Scanner sc = new Scanner(System.in);

double userInput = 0;

System.out.print("Please enter a number");

userInput = sc.nextDouble();    // This is what you are missing
因此,您可以将变量
userInput
添加到ArrayList中,或者直接读取到ArrayList中

更新:

这就是你想要的代码。它将询问用户输入的数量,然后将每个输入添加到数组中

public static double[] getUserInput() {

    Scanner sc = new Scanner(System.in);

    List<Double> inputList = new ArrayList<Double>();

    System.out.println("Please enter how many numbers you will be inputing");
    int numberOfInputs = sc.nextInt();

    for (int i = 0; i < numberOfInputs; i++) {
        System.out.println("Please enter a number");
        double userInput = sc.nextDouble(); // Store user inputed double into temporary variable
        inputList.add(userInput); // Add temporary variable into ArrayList
    }
    sc.close();

    double[] arr = new double[inputList.size()];
    for (int i = 0; i < arr.length; i++) {
        arr[i] = inputList.get(i);
    }
    return arr;
}
publicstaticdouble[]getUserInput(){
扫描仪sc=新的扫描仪(System.in);
List inputList=新建ArrayList();
System.out.println(“请输入要输入的数字”);
int numberOfInputs=sc.nextInt();
对于(int i=0;i
我猜您希望这样做:

public static void main(String[] args) {
    Double[] arr = getUserInput();
    System.out.println("The Arithmetic Mean is " + arithmeticMean(arr));
}

public static Double[] getUserInput() {
    List<Double> inputList = new ArrayList<Double>();
    Scanner sc = new Scanner(System.in);

    System.out.println("Please one number at a time, or [Enter] to end.");
    while (true) {
        System.out.print("Next number: ");
        String input = sc.nextLine();
        if (input.equals(""))
            break;
        try {
            inputList.add(Double.parseDouble(input));
        }
        catch (NumberFormatException e) {
            System.out.println("Please enter a valid number, or [Enter] to end.");
        }
    }
    sc.close();

    Double[] arr = new Double[inputList.size()];
    arr = inputList.toArray(arr);
    return arr;
}

public static double arithmeticMean(Double[] nums) {
    double mean = 0;
    double sum = 0;

    // gets the mean
    try {
        for (int i = 0; i < nums.length; i++) {
            sum = sum + nums[i];
        }
        mean = sum / nums.length;
    } catch (ArithmeticException ex) {
        System.out.println(ex);
    }
    return mean;
}
publicstaticvoidmain(字符串[]args){
Double[]arr=getUserInput();
System.out.println(“算术平均值为”+算术平均值(arr));
}
公共静态双[]getUserInput(){
List inputList=新建ArrayList();
扫描仪sc=新的扫描仪(System.in);
System.out.println(“请一次输入一个数字,或[输入]结束”);
while(true){
系统输出打印(“下一个号码:”);
字符串输入=sc.nextLine();
if(输入。等于(“”)
打破
试一试{
add(Double.parseDouble(input));
}
捕获(数字格式){
System.out.println(“请输入有效数字,或[输入]结束”);
}
}
sc.close();
Double[]arr=新的Double[inputList.size()];
arr=输入列表到阵列(arr);
返回arr;
}
公共静态双算术平均值(双[]nums){
双平均值=0;
双和=0;
//中庸
试一试{
对于(int i=0;i
我猜您希望这样做:

public static void main(String[] args) {
    Double[] arr = getUserInput();
    System.out.println("The Arithmetic Mean is " + arithmeticMean(arr));
}

public static Double[] getUserInput() {
    List<Double> inputList = new ArrayList<Double>();
    Scanner sc = new Scanner(System.in);

    System.out.println("Please one number at a time, or [Enter] to end.");
    while (true) {
        System.out.print("Next number: ");
        String input = sc.nextLine();
        if (input.equals(""))
            break;
        try {
            inputList.add(Double.parseDouble(input));
        }
        catch (NumberFormatException e) {
            System.out.println("Please enter a valid number, or [Enter] to end.");
        }
    }
    sc.close();

    Double[] arr = new Double[inputList.size()];
    arr = inputList.toArray(arr);
    return arr;
}

public static double arithmeticMean(Double[] nums) {
    double mean = 0;
    double sum = 0;

    // gets the mean
    try {
        for (int i = 0; i < nums.length; i++) {
            sum = sum + nums[i];
        }
        mean = sum / nums.length;
    } catch (ArithmeticException ex) {
        System.out.println(ex);
    }
    return mean;
}
publicstaticvoidmain(字符串[]args){
Double[]arr=getUserInput();
System.out.println(“算术平均值为”+算术平均值(arr));
}
公共静态双[]getUserInput(){
List inputList=新建ArrayList();
扫描仪sc=新的扫描仪(System.in);
System.out.println(“请一次输入一个数字,或[输入]结束”);
while(true){
系统输出打印(“下一个号码:”);
字符串输入=sc.nextLine();
if(输入。等于(“”)
打破
试一试{
add(Double.parseDouble(input));
}
捕获(数字格式){
System.out.println(“请输入有效数字,或[输入]结束”);
}
}
sc.close();
Double[]arr=新的Double[inputList.size()];
arr=输入列表到阵列(arr);
返回arr;
}
公共静态双算术平均值(双[]nums){
双平均值=0;
双和=0;
//中庸
试一试{
对于(int i=0;i
仅定义不带任何数字的扫描仪类,如
sc.nextDouble()
。仅定义不带任何数字的扫描仪类,如
sc.nextDouble()
。非常感谢您的帮助。对不起,我不太清楚您在ArrayList中添加userInput是什么意思。非常感谢您的帮助。对不起,我不太清楚