Я до сих пор не могу понять, почему эта программа не вычисляет и выдает результат, который, как я думал, будет.
Я пытаюсь использовать экземпляр класса PrintWriter для записи нескольких значений с плавающей запятой, указанных пользователем в цикле for, в текстовый файл, названный пользователем как Numbers.txt.
Затем я создал объект inputFile класса Scanner и использовал метод hasNext для чтения этих значений в цикле while, в котором они вычисляются и результат присваивается переменной total; аккумулятор, инициализированный до 0.0.
Тем не менее, значение общей переменной по-прежнему равно 0,0, а не суммированию этих значений с плавающей запятой в файле.
Я новичок в Java, в частности, и в программировании в целом, поэтому кто-нибудь, пожалуйста, помогите мне определить, где произошла ошибка и как ее исправить, чтобы получить желаемый результат.
Заранее спасибо! Ниже приведен фрагмент кода, который я написал:
public class FileSum {
public static void main(String[] args) throws IOException {
double individualValues, total = 0.0; // total is an accumulator to store the sum of the values specified in Numbers.txt, thus it must be initialized to 0.0
int numberOfValues;
Scanner kb = new Scanner(System.in);
System.out.print("enter the file name: ");
String fileName = kb.nextLine();
System.out.print("enter the number of floating-point values in the file: ");
numberOfValues = kb.nextInt();
PrintWriter outputFile = new PrintWriter(fileName);
for(int i = 1; i <= numberOfValues; i++) {
System.out.print("the floating-point value number " + i + ": ");
individualValues = kb.nextDouble();
outputFile.println(individualValues);
}
File file = new File(fileName);
Scanner inputFile = new Scanner(file);
while(inputFile.hasNext()) {
individualValues = inputFile.nextDouble();
total = total + individualValues;
}
inputFile.close();
outputFile.close();
kb.close();
System.out.println("the total values in Numbers.txt: " + total);
}}
Вот вывод программы:
введите имя файла: Numbers.txt
введите число значений с плавающей точкой в файле: 2
число с плавающей точкой 1: 4,5
значение с плавающей запятой 2: 3.2
общие значения в Numbers.txt: 0,0