в pr так и не ответили пока.Братцы помогитене работает, как должен пример c книги. на второй лексеме он переходит к елсу и выводит: ошибка формата файлаimport java.util.;import java.io.;public class AvgNums {public static void main(String args[])throws IOException {int count=0;double sum= 0.0;FileWriter fout = new FileWriter("test.txt");fout.write("2 3.4 5 6 7.4 9.1 10.5 готово");fout.close();FileReader fin = new FileReader("test.txt");Scanner src = new Scanner(fin);while(src.hasNext()) {if(src.hasNextDouble()) {sum += src.nextDouble();System.out.println(sum);count++;}}if(src.hasNext()) {String str = src.next();if(str.equals("готово")){return;}else {System.out.println("Ошибка формата файла.");return;}}src.close();System.out.println("средне равно: " +sum/count);}}
>>136684452 (OP)Может я чего не понимаю, но первый вопрос: что у тебя там return'ы делают, у тебя же из методов только main с возвращаемым void'ом
>>136685276сорри не совсем то кинул, вот как в учебнике было написано. там же и ретерн есть.import java.util.;import java.io.;class AvgNums { public static void main(String args[])throws IOException { int count=0; double sum= 0.0; FileWriter fout = new FileWriter("test.txt"); fout.write("2 3.4 5 6 7.4 9.1 10.5 готово"); fout.close(); FileReader fin = new FileReader("test.txt"); Scanner src = new Scanner(fin); while(src.hasNext()) { if(src.hasNextDouble()) { sum += src.nextDouble(); count++; } else { String str=src.next(); if (str.equals("готово"))break; else { System.out.println("ошибка формата"); return; } } } src.close(); System.out.println("средне равно: " +sum/count); }}
>>136685969проблема то в том, что он числа с точкой не обрабатывает. и вот хз почему
>>136686087Такое может быть из-за локали. Вызови у сканера useLocale и поставь бездуховную пиндосскую, там разделители точки, а в расиюшке запятые.
>>136686449спасибо тебе огромное. я чуть слезу не пустил.хм, а если оставить через запятую, а ещё разделителем поставить тоже запятую, то он опять тупить начнет?