Как заменить четыре метода на один, который будет обновлять переменную «str», чтобы соответствовать операторам «+ -/*» с «ADD, SUB, DIV или MULT»? Когда он проходит через инструкции case, я пытаюсь выяснить, как заставить оператор case распознать оператор, который был выбран через вход сканера, и сопоставить его с соответствующей строкой дескриптора.Объединение четырех методов в один
import java.util.Scanner;
public class Testor4 {
public static void main(String[] args) {
String s1 = getInput("Enter a number: ");
String s2 = getInput("Enter second number");
String op = getInput("Enter operator: + -/* ");
double result = 0;
String str = " You chose to";
try{
switch(op){
case "+": str += getOpNameAdd(str); result = getSum(s1,s2); break;
case "-": str += getOpNameSub(str); result = getSub(s1,s2); break;
case "/": str += getOpNameDiv(str); result = getDiv(s1,s2); break;
case "*": str += getOpNameMult(str); result = getMult(s1,s2); break;
default: System.out.println("not an operator."); return;
}
}catch(Exception e){
System.out.println(e.getMessage());
}
System.out.printf("%s%s%.2f","Result is: ",str,result);
}
private static double getSum(String s1, String s2){
double d1 = Double.parseDouble(s1);
double d2 = Double.parseDouble(s2);
return d1 + d2;
}
private static double getSub(String s1, String s2){
double d1 = Double.parseDouble(s1);
double d2 = Double.parseDouble(s2);
return d1 - d2;
}
private static double getDiv(String s1, String s2){
double d1 = Double.parseDouble(s1);
double d2 = Double.parseDouble(s2);
return d1/d2;
}
private static double getMult(String s1, String s2){
double d1 = Double.parseDouble(s1);
double d2 = Double.parseDouble(s2);
return d1 * d2;
}
public static String getOpNameAdd(String str){
return str = " ADD!";
}
public static String getOpNameSub(String str){
return str = " Subtract!";
}
public static String getOpNameDiv(String str){
return str = " Divide!";
}
public static String getOpNameMult(String str){
return str = " Multiply!";
}
public static String getInput(String prompt){
System.out.println(prompt);
Scanner sc = new Scanner(System.in);
return sc.nextLine();
}
}
Что вы видите, когда вы запускали свой код через отладчик? – shoover
ЧТО? он отлично работает. Это не проблема, требующая отладки. Вы пытались запустить его, и это не удалось? Вопрос в том, как объединить четыре метода внизу, которые делают одну конкретную вещь, и возвращать слова «ADD
Нет, я этого не делал, но вы сказали: «Я пытаюсь понять, как заставить аргумент case распознать оператора», из-за чего он звучит так, будто у вас проблемы с этой частью. – shoover