Я пишу программу базового калькулятора в java с помощью JOptionPane. Я очень новичок в этом, и любая помощь с проблемой, которую я имею, очень ценится! Я попытался исследовать это онлайн, но я только нахожу ответы, где сканер импортирован или порядок ввода пользователя отличается от моего.простой расчет в java - сообщите нам, что они должны использовать действительный оператор
Моя программа должна спросить пользователей о числе, чем они выбирают оператора для использования (+, -, *, /,%) и запрашивают у пользователей второе число. После этого вычисление выполняется и отображается результат.
Возможно ли использовать цикл while (а не цикл while) для проверки недопустимого оператора до ввода второго номера? У меня есть рабочий код, который проверяет недействительный оператор после ввода второго номера, но я хотел бы найти способ проверить его заранее, а затем повторно запросить пользователей для оператора до ввода действительного.
while (!useCalculator) {
num1 = JOptionPane.showInputDialog(null, "Please enter your first number:");
numOne = Double.parseDouble(num1);
input = JOptionPane.showInputDialog(null, "Thank you! What would you like to do?\nPlease choose from the following options:\n+\n-\n*\n%\n/");
num2 = JOptionPane.showInputDialog(null, "Thank you!\nPlease enter your second number:");
numTwo = Double.parseDouble(num2);
if (input != null && input.equals("+"))
{add(numOne, numTwo);
result = add(numOne, numTwo); //I have this as a separate mehtod
JOptionPane.showMessageDialog(null, "The result of " + numOne + " " + input + " " + numTwo + " is: " + result);
}
else if (input != null && input.equals("-"))
{minus(numOne, numTwo);
result = minus(numOne, numTwo);
JOptionPane.showMessageDialog(null, "The result of " + numOne + " " + input + " " + numTwo + " is: " + result);
}
else if (input != null && input.equals("*"))
{ multiply(numOne, numTwo);
result = multiply(numOne, numTwo);
JOptionPane.showMessageDialog(null, "The result of " + numOne + " " + input + " " + numTwo + " is: " + result);
}
else if (input != null && input.equals("/"))
{ divide(numOne, numTwo);
result = divide(numOne, numTwo);
JOptionPane.showMessageDialog(null, "The result of " + numOne + " " + input + " " + numTwo + " is: " + result);
}
else if (input != null && input.equals("%"))
{ modul(numOne, numTwo);
result = modul(numOne, numTwo);
JOptionPane.showMessageDialog(null, "The result of " + numOne + " " + input + " " + numTwo + " is: " + result);
}
else JOptionPane.showInputDialog(null, "The operator is invalid. Please select a correct operator.\nPlease choose from the following options:\n+\n-\n*\n%\n/");
Дело в том, что я хочу понять и узнать, как это сделать. Я добавил часть своего кода для руководства (я могу добавить все, если нужно), но то, что я действительно ищу, - это объяснение того, как это сделать, чтобы я мог попробовать это самостоятельно и проделать свой путь через него. Приносим извинения, если это будет широким, я был бы рад очистить все, если понадобится! :)
Спасибо всем, T
Возможно, оператор switch будет выглядеть чище. –
Это было прекрасно - спасибо @simonarame (и всем остальным!). Я очень ценю быструю и вежливую помощь - новичок в java, это приятно иметь :) – Temp