2016-02-27 65 views
0

这是我的任务:提示用户输入任意数量的值。用户应该输入哨兵值99999来表示他们已经完成输入。仅显示正值的平均值。计算平均值时完全忽略任何负值。也忽略99999值。获取用户输入代码/逻辑问题的值的平均值

我试图得到的输出是:

Enter a series of values (enter 99999 to quit): 
93 ­4 18 19 ­2 41 17 99999 
The average of the positive values is 37.6 

到目前为止我的代码: 我想我需要一个循环,但不知道什么环的种类和如何实现它。有任何想法吗?

public static void main(String[] args){ 
    Scanner in = new Scanner(System.in); 
    System.out.println("Please enter a series of values (type 99999 to quit)"); 
    int number = in.nextInt(); 
    int valuesIn = number++; 
    double average = number/ valuesIn; 

    if(number == 99999) 
    { 
     System.exit(-1); 
    } 
    else 
    { 
     System.out.println(average); 
    } 
} 
} 
+1

您需要添加代码到'做while'块所以它会不断地为数字要求。当用户输入99999时,你可以在此时间外进行结果计算 –

回答

1

你可以简单地实现do-while循环:

Scanner in = new Scanner(System.in); 
int number, valuesIn; 
double average = 0; 

do { 
    number = in.nextInt(); 
    if(number > 0 && number != 99999) { 
     valuesIn++; 
     average += number; 
    } 
} while(number != 99999) 

average /= valuesIn;