написал за Диму правильное решение, будем практиковаться больше. Все забыл (сам смог заменить на константы магические строки, когда ему показали как писать константы)

master
amorozov 2024-11-13 21:46:01 +03:00
parent 0e77149d63
commit e2abb090f5
1 changed files with 50 additions and 20 deletions

View File

@ -3,23 +3,55 @@ package io.tswf.dima;
import java.util.Scanner; import java.util.Scanner;
public class CalculatorApp { public class CalculatorApp {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
float number1 = scanner.nextFloat();
String operation = scanner.next();
float number2 = scanner.nextFloat();
System.out.print("Ответ:");
String a = "+";
String b = "-";
String c = "*";
String d = ":";
String e = "^";
if( operation != a && operation != b && operation != c && operation != d && operation != e) { public static final String OPERATION_PLUS = "+";
System.out.println("ошибка"); public static final String OPERATION_MINUS = "-";
public static final String OPERATION_MULTIPLY = "*";
public static final String OPERATION_DIVISION = ":";
public static final String OPERATION_POWER = "^";
public static final String[] AVAILABLE_OPERATIONS = { OPERATION_DIVISION, OPERATION_MINUS, OPERATION_PLUS, OPERATION_MULTIPLY, OPERATION_POWER };
public static final Scanner SCANNER = new Scanner(System.in);
// Проверяет поддерживается ли операция
public static boolean isOperationSupported(String operationDigit) {
for (String supportedOperationDigit : AVAILABLE_OPERATIONS) {
if (supportedOperationDigit.equals(operationDigit)) {
return true;
}
} }
if (":".equals(operation)) { return false;
}
public static void printInputNameText(String inputName) {
System.out.print("Введите " + inputName + " >>> ");
}
public static float readNumberFromConsole(String numberName) {
printInputNameText(numberName);
return SCANNER.nextFloat();
}
public static String readStringFromConsole(String stringName) {
printInputNameText(stringName);
return SCANNER.next();
}
public static void main(String[] args) {
float number1 = readNumberFromConsole("первое число");
String operation = readStringFromConsole("операцию");
float number2 = readNumberFromConsole("второе число");
System.out.print("Ответ: ");
if(!isOperationSupported(operation)) {
System.out.println("Неизвестная операция!");
return;
}
if (OPERATION_DIVISION.equals(operation)) {
if (number2 != 0) { if (number2 != 0) {
float division = number1 / number2; float division = number1 / number2;
System.out.println(division); System.out.println(division);
@ -28,25 +60,23 @@ public class CalculatorApp {
} }
} }
if ("+".equals(operation)) { if (OPERATION_PLUS.equals(operation)) {
float addition = number1 + number2; float addition = number1 + number2;
System.out.println(addition); System.out.println(addition);
} }
if ("-".equals(operation)) { if (OPERATION_MINUS.equals(operation)) {
float subtraction = number1 - number2; float subtraction = number1 - number2;
System.out.println(subtraction); System.out.println(subtraction);
} }
if ("*".equals(operation)) { if (OPERATION_MULTIPLY.equals(operation)) {
float multiplication = number1 * number2; float multiplication = number1 * number2;
System.out.println(multiplication); System.out.println(multiplication);
} }
if ("^".equals(operation)) { if (OPERATION_POWER.equals(operation)) {
double power = Math.pow(number1, number2); double power = Math.pow(number1, number2);
System.out.println(power); System.out.println(power);
} }
} }
} }