Мне нужно попросить пользователя ввести 10 баллов в цикле и записать каждый балл в файл «scores.txt», но программа завершается после ввода одного балла. Я не уверен, как заставить программу написать каждый из 10 баллов в файл.Java Writing Test Scores to File
Последняя программа должна предлагать пользователю несколько баллов, записывать баллы в файл, затем открывать этот файл, вычислять среднее значение и отображать его.
Условие выхода для цикла может быть отрицательным; если отрицательный, я могу предположить, что пользователь выполнил ввод данных.
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();
}
Вы устанавливаете 'счет' на вход. Вы не используете его в качестве счетчика. Это продолжает принимать входные данные, пока оценка не станет меньше 10, а не после 10 баллов. – Arc676
хорошо любое отрицательное значение будет <= 10, поэтому ваша петля никогда не заканчивается – AbtPst
также каково ваше условие выхода? должна ли программа выйти после принятия 10 значений или когда пользователь вводит отрицательное значение? – AbtPst