0

我正在编写一个程序,其中用户输入 10 个数字,并在输入时将它们加在一起,然后显示平均值。到目前为止,我有这个,我一直在想在循环体中放什么来实现这一点。谢谢!

import java.util.Scanner;

public class InputMethod
{
public static void main(String[] args)
{
    int loop_Value;
    int end_Value = 10;
    for(loop_Value =0; loop_Value < end_Value; loop_Value++)
    {
        readInteger();

    }
}

private static int readInteger()
{
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter an integer");
    while (!scan.hasNextInt()) 
    {
        scan.next();
        System.out.println ("Bad input. Enter an integer");
    }
    int input = scan.nextInt();
    {
        return input;
    }

}

}

4

3 回答 3

2

添加一个整数值,求和。在循环体中放

sum += readInteger();

在末尾

System.out.println("The sum is " + sum);

然后因为数字的数量是固定的。

System.out.println("The average is " + (sum / end_Value));
于 2013-02-28T14:32:56.867 回答
1

您只阅读了输入:它缺少对readInteger返回的单个数字的记忆

这是一种可怕的工作代码,不符合 Oracle/Sun 准则。

public class InputMethod {

    List<Integer> numbers = new ArrayList<Integer>();

    public static void main(String[] args) {

        int endValue = 10;

        InputMethod inputMethod = new InputMethod();
        for (int loop_Value = 0; loop_Value < endValue; loop_Value++) {
            int number=inputMethod.readInteger();/*storage the input*/

            inputMethod.numbers.add(number);
        }
        int sum=0;
        for (int loop_Value = 0; loop_Value < inputMethod.numbers.size(); loop_Value++) {
            sum=sum+inputMethod.numbers.get(loop_Value); /*partial sum*/
        }

        System.out.println("Sum of "+inputMethod.numbers+"= "+sum);
        System.out.println("Average of "+inputMethod.numbers+"= "+(double)(sum/inputMethod.numbers.size()));

    }

    private int readInteger() {
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter an integer");
        while (!scan.hasNextInt()) {
            scan.next();
            System.out.println("Bad input. Enter an integer");
        }
        int input = scan.nextInt();
        {

            return input;
        }

    }

}

一些观察:

  • 变量的名称没有_;仅当名称不稳定时才可以插入他;
  • 最好不要在循环之外声明for循环的变量:每个变量都必须具有最小范围到程序中;
  • System.out.println("输入错误。请输入一个整数"); 应该是System.err.println ("Bad input. Enter an integer"); : sysout 表示正常消息,syserr 表示错误。

最好通过学习一门语言来了解和应用正确的约定;之后就更难了。

于 2013-02-28T14:50:56.077 回答
0
    int sum=0;
    for(loop_Value =0; loop_Value < end_Value; loop_Value++)
    {
      sum += (readInteger());
    }
    double avg = sum/end_value;
于 2013-02-28T14:43:14.547 回答