написал за Диму правильное решение, будем практиковаться больше. Все забыл (сам смог заменить на константы магические строки, когда ему показали как писать константы)
parent
0e77149d63
commit
e2abb090f5
|
@ -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);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue