Как убрать лишнее поле?

Написал код на вычисление корней в квадратном уравнении:

import java.io.*;
 
public class LessonScanner {
  public static void main(String[] args) throws IOException {
 
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    String s = reader.readLine();
    boolean flag;
    String pattern = "[0-9.\\n]+";
    flag = s.matches(pattern);
    double a, b, c, D, x1, x2, i;
 
    while (true) {
      if (!flag) {
        System.out.println("Разрешенно вводить только числа!");
        break;
      } else {
        s = reader.readLine();
        a = Double.parseDouble(s);
        if (a == 0) {
          System.out.println("Переменная \"a\" не может равняться 0!");
          break;
        }
 
        s = reader.readLine();
        b = Double.parseDouble(s);
 
        s = reader.readLine();
        c = Double.parseDouble(s);
 
        i = Double.POSITIVE_INFINITY;
 
        D = b * b - 4 * a * c;
        if (D > 0) {
          x1 = (-b + Math.sqrt(D) / (2 * a));
          System.out.println("x1 = " + x1);
          x2 = (-b - Math.sqrt(D) / (2 * a));
          System.out.println("x2 = " + x2);
          if ((Math.sqrt(D) / (2 * a)) == i) {
            System.out.println("Увы получилась бесконечность");
          }
        }
        if (D == 0) {
          x1 = -b / (2 * a);
          System.out.println("x1 = x2 = " + x1);
        } else if (-b / 2 * a == 0) {
          System.out.println("x1 = x2 = 0");
        } else if (D < 0) {
          System.out.println("Дискриминант не может быть меньше нуля");
        }
        break;
      }
    }
  }
}

И я хочу что бы вводить можно было числа только 3 раза, но он почему-то требует ввести число 4 раза, я догадываюсь что дело в s = reader.readLine();, но не могу додуматься как всё это исправить


Ответы (0 шт):