Я пытаюсь написать программу, которая запрашивает у пользователя 2 номера, а затем попросит пользователя выбрать команду из меню, введя соответствующий номер в команду. Я могу написать программу, если я беру ввод как Int, но не могу понять его для строки, также она должна быть строкой. У меня возникают проблемы, когда он входит в цикл while для проверки ввода пользователя, который не останавливается, когда оператор ложный, он останется в цикле. Я не могу понять, что я делаю неправильно. Вот код, который у меня есть.Получение строки из сканера при вводе номера
import java.util.Scanner;
public class ab {
public static void main(String[] args) {
System.out.println("-------------------------------------");
Scanner stdIn = new Scanner(System.in);
double L;
System.out.print("Enter the left operand: ");
L = stdIn.nextDouble();
double R;
System.out.print("Enter the right operand: ");
R = stdIn.nextDouble();
System.out.println("-------------------------------------");
System.out.println("1 -> Multiplication");
System.out.println("2 -> Division");
System.out.println("3 -> Addition");
System.out.println("4 -> Subraction");
System.out.println("-------------------------------------");
String input;
System.out.print("Choose one of the following commands by enterning the corresponding number: ");
input = stdIn.next();
System.out.println();
while (!input.equals(1) && !input.equals(2) && !input.equals(3) && !input.equals(4)) {
System.out.print("Invalid entry, please type a valid number (1, 2, 3 or 4): ");
input = stdIn.next();
System.out.println();
if (input.equals(1)) {
System.out.print(L + " * " + R + " = " + (L * R));
} else if (input.equals(2)) {
System.out.print(L + "/" + R + " = " + (L/R));
} else if (input.equals(3)) {
System.out.print(L + " + " + R + " = " + (L + R));
} else {
System.out.print(L + " - " + R + " = " + (L - R));
}
}
stdIn.close();
}
}
Любая помощь будет оценена. Благодарим вас за продвижение.
Благодарим за такой быстрый ответ, s решила мою проблему! – Cody