/
javapractice
/
java-practice-antlr4
Обзор
Документация
Войти
/
javapractice
/
java-practice-antlr4
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
src/main/java/com/example/calc/Main.java
50 строк
2 KB
Кузьма Даждъбогин
Javadoc на классах, методах и unit-тестах
08 авг 2026, 11:37
08 авг 2026, 11:37
e717695
Код
Авторство
О чём код?
package com.example.calc; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; /** * Точка входа: цикл чтения выражений из stdin и печати результатов в stdout. * * <p>Каждая строка обрезается через {@code trim}; пустые строки молча * пропускаются; точное совпадение со словом {@code stop} (с учётом регистра) * или конец потока (EOF) завершают программу. Ошибка разбора или вычисления * печатается в stderr и не прерывает цикл.</p> */ public final class Main { private static final String STOP_COMMAND = "stop"; private Main() { } /** * Запускает интерактивный цикл калькулятора. * * @param args не используются * @throws IOException при ошибке чтения stdin */ public static void main(String[] args) throws IOException { Calculator calculator = new Calculator(); try (BufferedReader reader = new BufferedReader( new InputStreamReader(System.in, StandardCharsets.UTF_8))) { String line; while ((line = reader.readLine()) != null) { String expression = line.trim(); if (expression.isEmpty()) { continue; } if (STOP_COMMAND.equals(expression)) { break; } try { System.out.println(Calculator.format(calculator.evaluate(expression))); } catch (CalcException e) { System.err.println(e.getMessage()); } } } } }