2014-10-22 59 views
0

我在程序中遇到了一些麻煩,我想讓用戶在程序中輸入任意數量的數字,直到他們不再需要爲止。程序然後應該計算輸入數字的平均值和最大值。我哪裏做錯了?跳過聲明

import java.util.Scanner; 
public class DataSet 
{ 
    //Instance Variables 
    private double newValue; 
    private double sum; 
    private int count; 
    Scanner scan = new Scanner(System.in); 


    //Constructors 
    public DataSet() 
    { 
     double newValue = 0; 
     double sum = 0; 
     int count = 0; 
    } 

    public void run() 
    { 
    } 

    public double getaddValueToSet() 
    { 
     System.out.println("Please enter a number"); 
     newValue = scan.nextDouble(); 
     count += 1; 
     return newValue; 
    } 

    public double getSum() 
    { 
     sum += newValue; 
     return sum; 
    } 

    public double getAverage() 
    { 
     double average; 
     average = sum/count; 
     return average; 
    } 

    public double getMaximum() 
    { 
     double max=newValue; 
     if(newValue >= max) 
     { 
     max = newValue; 
     } 
     return max; 
    } 

    public String toString() 
    { 
     String str; 
     str = "Average: " + getAverage() + "\n" + 
     "Maximum: " + getMaximum(); 
     return str; 
    } 
} 


import java.util.Scanner; 

public class DataSetRunner 
{ 
    public static void main(String [] args) 
    { 
     String answer = "yes"; 
     Scanner scan = new Scanner(System.in); 


    { 
     System.out.println("Do you want to enter another number?"); 
     answer = scan.next(); 
    } 

    while(answer.equals("yes")) 
    { 
     DataSet d1 = new DataSet(); 
     double sum, number; 


     d1.run(); 
     number = d1.getaddValueToSet(); 
     sum = d1.getSum(); 
     answer = scan.nextLine(); 

     System.out.println(d1); 
    } 

} 

} 
+1

那麼,什麼是你應該做的節目?它實際上做了什麼?當你嘗試運行它時會得到什麼錯誤(如果有的話)? – azurefrog 2014-10-22 02:18:44

+0

代碼中存在許多問題 – 2014-10-22 02:23:06

+1

命名代碼塊然後突破它。 – NightSkyCode 2014-10-22 02:24:24

回答

1
DataSet d1 = new DataSet(); 
    do { 
     System.out.println("Do you want to enter another number?"); 
     answer = scan.next(); 
     if (answer.equalsIgnoreCase("YES")) { 
      double sum, number; 
      d1.run(); 
      number = d1.getaddValueToSet(); 
      sum = d1.getSum(); 
      answer = scan.nextLine(); 
      System.out.println(d1); 
     } else { 
      break; 
     } 
    } while (true); 
+0

非常感謝。我得到它的工作,只需要在S.O.P(d1)之外移動,這樣它就不會每次都打印出來。 – user3657449 2014-10-22 02:45:02