0

我在java中有一个情况;

我想请用户输入一些数字并获得这些数字的总数。但是,如果用户输入负数,它将结束循环;

目前我有一个如下的while循环;

                double sum = 0;
    double Input = 0;
    System.out.println("Please enter the numbers (negative to end)")
    System.out.println("Enter a number");
    Scanner kdb = new Scanner(System.in);
          Input = kdb.nextDouble();
    while (Input > 0)
    {
        System.out.println("Enter an income");
        Input = kdb.nextDouble();
        sum = Input;
    }

然而,它并没有完成这项工作。如果用户输入 40、60、50 和 -1 正确的结果应该是 150;我的循环结果为 109。

请帮忙!

非常感谢!杰基

4

4 回答 4

2
double sum = 0;
double Input = 0;
System.out.println("Please enter the numbers (negative to end)")
System.out.println("Enter a number");
Scanner kdb = new Scanner(System.in);
Input = kdb.nextDouble();
while (Input > 0)
{
    sum += Input;
    System.out.println("Enter an income");
    Input = kdb.nextDouble();
}

我建议变量名不要以大写字母开头。

于 2013-01-06T00:56:04.383 回答
0

这应该工作!

        double sum = 0;
    double Input = 0;
    boolean Adding= true;
    System.out.println("Please enter the numbers (negative to end)");

    Scanner kdb = new Scanner(System.in);
    while(Adding == true)
    {
        System.out.print("Enter a number: ");
        Input = kdb.nextDouble();
        if(Input > 0)
        {
            sum+= Input;
        }
        else
            Adding = false;

    }
    System.out.println("Your sum is: " + sum);
于 2013-01-06T01:02:40.387 回答
0

第一个输入值被第二个输入值覆盖,因为总和仅在循环结束时完成。

**double sum = 0;
double Input = 0;
System.out.println("Please enter the numbers (negative to end)");
System.out.println("Enter a number");
Scanner kdb = new Scanner(System.in);
      Input = kdb.nextDouble();
while (Input>0)
{
    sum+= Input;
    System.out.println("Enter an income");
    Input = kdb.nextDouble();

}
System.out.println(sum);
}**

输出是:

Please enter the numbers (negative to end)

输入数字 40 输入收入 50 输入收入 60 输入收入 -1 150.0

于 2013-01-06T01:03:35.527 回答
0

在执行 sum += Input 之前,您应该检查 Input > 0。

于 2013-01-06T00:57:03.537 回答