Метод send
реализует сопрограммы .
Если вы не сталкивались с Coroutines, они сложны, чтобы обернуть голову, потому что они меняют способ передачи программы. Вы можете прочитать хороший учебник для более подробной информации.
Абстракция - это большая тема, которую было бы сложно быстро охватить. Тем не менее, ваша программа - это один длинный метод, который, без сомнения, может быть переработан в более объектно-ориентированный дизайн.
Что касается упрощения вашего кода, есть много возможностей. Я начал с просмотра кода, который повторяется.
Выражение if
может состоять из нескольких частей, поэтому:
if (numberFirst > 3) {
System.out.println("You can't do that. Please start over.");
System.out.close();
}
if (numberFirst < 2) {
System.out.println("You can't do that. Please start over.");
System.out.close();
}
можно упростить до:
if ((numberFirst > 3) || (numberFirst < 2)) {
System.out.println("You can't do that. Please start over.");
System.out.close();
}
Если операторы могут быть вложенными, то:
[ 112]можно упростить до:
if (numberFirst == 3) {
if (operation.equals("1"))
System.out.println("You are using addition." + " Your answer is " + (num1 num2 + num3) + ".");
if (operation.equals("2"))
System.out.println("You are using subtraction." + " Your answer is " + (num1 - num2 - num3) + ".");
...
}
Я мог бы продолжать. Лучше всего изучать основные функции языка Java, например. циклы, switch
операторы, массивы и так далее. Тогда вы сможете упростить еще больше.