如何从负数的会计中停止while循环?

时间:2017-07-10 18:06:26

标签: java eclipse

对于课程,我正在编写一个接受正整数流的程序。一旦将负数输入控制台,程序将停止计算数字并计算平均值。

我的问题是,我一直在写一个循环来解释输入的负数。我怎么阻止这个?我试过以下

do{
     if (number < 0){
         break;
     } else if ( number >= 0) {
         number = input.nextDouble();
            DivideBy++;
            sum+=number;
     }
 }while (number >= 0);

输入1.1,1.9,3和-1时,如果正确答案为2,程序将打印1.25。

以下是我尝试过的另一个例子:

do { 
    number = input.nextDouble();
    DivideBy++; 
    sum+=number;
 }while (number >= 0);

感谢任何帮助。

4 个答案:

答案 0 :(得分:0)

试试这个,它对我有用:

while(number >= 0){
  total = number + total;


} //Your average logic here//

答案 1 :(得分:0)

试试这个:

    Scanner input = new Scanner(System.in);
    double number = 0;
    double sum = 0;
    int divideBy = 0;
    double avg = 0;

    while(number >= 0) {
        System.out.println("Enter number: ");
        number = input.nextDouble();
        if(number < 0){
            break;
        }           
        sum+=number;
        divideBy++;
        avg = sum/divideBy;
    }

    System.out.println(avg);

您的if语句应该在从键盘读取数字后出现:]

答案 2 :(得分:0)

您现在正在做的是在增加DivideBy之后检查数字是否为负,并将数字添加到总和中。

您可以通过撤消在负数后执行的操作来轻松解决此问题。

// outside the loop:
sum -= number;
DivideBy--;

然后你会得到正确的结果。

或者,你可以这样做 - 首先检查否定,然后将其添加到总和。

Scanner s = new Scanner(System.in);
int num = s.nextInt();
int count = 0;
int sum = 0;
while (num > 0) {
    sum += num;
    count++;
    num = s.nextInt();
}
System.out.println(sum / count);

答案 3 :(得分:0)

在if条件之前读取数字。试试这个。

do {
      number = input.nextDouble();
      if (number < 0) {
        break;
      } else if (number >= 0) {
        DivideBy++;
        sum += number;
      }
    } while (number >= 0);