/
IvanGB
/
java108
Обзор
Документация
Войти
/
IvanGB
/
java108
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
6_java108_HW_LISt/TodoList.java
150 строк
5 KB
IvanGB
upload files
02 янв 2026, 12:56
02 янв 2026, 12:56
b974492
Код
Авторство
О чём код?
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class TodoList { private final List<String> todos; private final Scanner scanner; public TodoList() { this.todos = new ArrayList<>(); this.scanner = new Scanner(System.in); } private void addTodo() { System.out.print("Введите текст задачи: "); String task = scanner.nextLine(); if (todos.contains(task)) { System.out.println("Такая задача уже существует!"); } else { todos.add(task); System.out.println("Добавлено в список задач!"); } } private void displayTodos() { System.out.println("Ваш список задач:"); if (todos.isEmpty()) { System.out.println("Пуст!!! Рекомендуем заполнить его задачами!"); } else { for (int i = 0; i < todos.size(); i++) { System.out.print((i+1) + ". " + todos.get(i)); System.out.println(); } } } private void removeByIndex() { if (todos.isEmpty()) { System.out.println("Список задач пуст! Удалять нечего!"); return; } displayTodos(); System.out.print("Введите номер задачи для удаления (1 - " + todos.size() + "): " ); try { int index = Integer.parseInt(scanner.nextLine().trim()); if (index < 1 || index > todos.size()) { System.out.println("С таким номером задача в вашем списке отсутствует!"); } else { todos.remove(index - 1); System.out.println("Задача из списка удалена!"); displayTodos(); } } catch (NumberFormatException e) { System.out.println("Ошибка: введите корректный номер задачи!!!"); } } private void removeByText() { if (todos.isEmpty()) { System.out.println("Список задач пуст! Удалять нечего!"); return; } displayTodos(); System.out.print("Введите точный текст задачи для удаления: "); String text = scanner.nextLine().trim(); if (text.isEmpty()) { System.out.println("Ошибка: удаляемый текст не может быть пустым!!!"); return; } boolean removed = true; for (int i = 0; i < todos.size(); i++) { if (todos.get(i).equals(text)) { todos.remove(i); System.out.println("Задача удалена!"); removed = true; break; } else { System.out.println("Задача с текстом: " + text + "; Не найдена"); System.out.println("Проверьте точное написание задачи!"); } } } private void showMenu() { System.out.println("Выберите операцию:"); System.out.println(); System.out.println("1. Добавить задачу"); System.out.println("2. Показать список задач"); System.out.println("3. Удалить задачу по номеру"); System.out.println("4. Удалить задачу по названию"); System.out.println("5. Завершить работу"); System.out.println("Выберите действие (1-5):"); } private int getMenuChoice() { while (true) { try { int choice = Integer.parseInt(scanner.nextLine().trim()); if (choice >= 1 && choice <= 5) { return choice; } else { System.out.print("Пожалуйста, введите число от 1 до 5: "); } } catch (NumberFormatException e) { System.out.print("Неверный формат. Введите число от 1 до 5: "); } } } public void start() { boolean start = true; while (start) { showMenu(); int choice = getMenuChoice(); switch (choice) { case 1 -> addTodo(); case 2 -> displayTodos(); case 3 -> removeByIndex(); case 4 -> removeByText(); case 5 -> { System.out.println("Выход из программы!!!"); start = false; } default -> System.out.println("Неверный формат. Попробуйте снова!!!"); } } scanner.close(); } }