我需要讓用戶在循環中輸入10個分數,並將每個分數寫入文件「scores.txt」,但程序在輸入一個分數後終止。我不確定如何讓程序將10個分數中的每一個寫入文件。Java將測試分數寫入文件
最終的程序應該提示用戶多個分數,將分數寫入文件,然後打開該文件,計算平均值並顯示它。
循環的退出條件可以是負分數;如果否定,我可以假設用戶輸入數據。
public class MoreTestScores {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
writeToFile("scores.txt");
processFile("scores.txt");
}
public static void writeToFile (String filename) throws IOException {
BufferedWriter outputWriter = new BufferedWriter(new FileWriter("scores.txt"));
System.out.println("Please enter 10 scores.");
System.out.println("You must hit enter after you enter each score.");
Scanner sc = new Scanner(System.in);
int score = 0;
while (score <= 10)
{
score = sc.nextInt();
outputWriter.write(score); }
}
public static void processFile (String filename) throws IOException, FileNotFoundException {
double sum = 0;
double number;
double average;
double count = 0;
BufferedReader inputReader = new BufferedReader (new InputStreamReader(new FileInputStream("scores.txt")));
String line;
while ((line = inputReader.readLine()) != null) {
number = Double.parseDouble(line);
sum += number;
count ++; }
average = sum/count;
System.out.println(average);
inputReader.close();
}
您將'score'設置爲輸入。你並沒有將它用作計數器。這不斷輸入,直到分數低於10,而不是10分之後。 – Arc676
以及任何負值將<= 10因此您的循環永不結束 – AbtPst
您的退出條件是什麼?程序是否應該在取值10或用戶輸入負值後退出? – AbtPst