Итак, все работает отлично для этого калькулятора, кроме того, для askCalcChoice1. Поскольку askCalcChoice1 является строкой, я называю ее неправильной (очевидно). Ошибка говорит, что он не может преобразовать строку в int, а также преобразовать int в boolean. Однако, когда я делаю inputOperation как строку, он прерывает другие 2 вызова ниже askCalcChoice1. (он разбивает displayRedults и askTwoValues, потому что это не строки). Я не знаю, как форматировать askCalcChoice, чтобы вызвать этот метод, который написан в другом классе, не нарушая ничего. askCalcChoice записывается как строка, которую я вставил под кодом oopCalculator. Есть ли способ, и может кто-нибудь, пожалуйста, покажите мне, как написать эту часть этого кода в oopCalculator?Ошибка калькулятора консоли java
int inputOperation; // user to choose the function
askCalcChoice1 myAskCalcChoice1 = new askCalcChoice1();
//menu becomes a complete string below
String menu = "Welcome to Hilda Wu's Calculator\t\t"
+ "\n1. Addition\n"
+ "2. Subtraction\n"
+ "3. Multiplication\n"
+ "4. Division\n"
+ "5. Exit\n\n";
calculatorCommands.pickNewSymbol(menu); //complete menu will be picked up as a string and display
calculatorCommands.putDownSymbol();
while (inputOperation = myAskCalcChoice1.calcChoice()) { //this will call for myAskCalcChoice1 class
calculatorCommands.pickNewSymbol("\n"); //pick up the class
calculatorCommands.putDownSymbol(); //display the class
askTwoValues myAskTwoValues = new askTwoValues();
float[] myFloats = myAskTwoValues.inputFloats(inputOperation);
displayResults myDisplayResults = new displayResults();
float result = myDisplayResults.showResults(inputOperation, myFloats);
String strFormat = "The answer is: " + result + "\n\n"; //print out The answer is as a string
calculatorCommands.pickNewSymbol(strFormat); //pick up string from above
calculatorCommands.putDownSymbol(); //display string
calculatorCommands.pickNewSymbol(menu); // pick up menu from the beginning of code, loop to calculator menu
calculatorCommands.putDownSymbol(); //display menu as loop
}
calculatorCommands.pickNewSymbol("\nThank you for using Hilda Wu's Calculator\n"); //when user choose to exit calculator
calculatorCommands.putDownSymbol();
}
String calcChoice() {
String input;
do { //do loop will continue to run until user enters correct response
System.out.print("Please enter a number between 1 and 5, A for Addition, S for Subtraction, M for Multiplication, or D for Division, or X for Exit: ");
try {
input = readInput.nextLine(); //user will enter a response
if (input.equals("A") || input.equals("S") || input.equals("M") || input.equals("D") || input.equals("X")) {
System.out.println("Thank you");
break; //user entered a character of A, S, M, or D
} else if (Integer.parseInt(input) >= 1 && Integer.parseInt(input) <= 5) {
System.out.println("Thank you");
break; //user entered a number between 1 and 5
} else {
System.out.println("Sorry, you have entered an invalid choice, please try again.");
}
continue;
}
catch (final NumberFormatException e) {
System.out.println("You have entered an invalid choice. Try again.");
continue; // loop will continue until correct answer is found
}
} while (true);
return input;
}
}
Я пропустил вопрос. – csmckelvey
Где проблема, и где вы застряли и вам нужна помощь? – mattias
Проблема в том, что я получаю неопределенную ошибку здесь в основной программе калькулятора. У меня возникли проблемы с вызовом метода switch из нижнего фрагмента кода. Не знаю, как отформатировать оператор, чтобы заставить его вызвать метод switch.askCalcChoice1 myAskCalcChoice1 = new askCalcChoice1(); while ((inputOperation = myAskCalcChoice1.userInput())! = 5) – userQuestion