Я новичок-кодер в Java, и я пытаюсь сделать этот калькулятор в java, где пользователь может ввести два числа и выбрать операцию, которая будет выполняться на этих числах. Однако, когда код приходит к выбору оператора, он пропускает пользовательский ввод и оператор if и непосредственно реализует инструкцию else.Простая программа калькулятора в Java
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner Calc = new Scanner(System.in);
int n1;
int n2;
int Answer;
System.out.println("Enter the first number: ");
n1 = Calc.nextInt();
System.out.println("Enter the second number:");
n2 = Calc.nextInt();
System.out.println("Select the order of operation: ");
char operator = Calc.nextLine().charAt(0);
if (operator == '+') {
Answer = (n1 + n2);
System.out.println("Answer:" + Answer);
}
if (operator == '-') {
Answer = (n1 - n2);
System.out.println("Answer:" + Answer);
}
if (operator == '*') {
Answer = (n1 * n2);
System.out.println("Answer:" + Answer);
}
if (operator == '/') {
Answer = (n1/n2);
System.out.println("Answer:" + Answer);
}
else {
System.out.println("not implemented yet. Sorry!");
}
}
}
Возможный дубликат [Пропуск nextLine() после использования следующих(), nextInt() или других методов nextFoo()] (http://stackoverflow.com/questions/13102045/skipping-nextline-after-using-next- nextint-or-other-nextfoo-methods) – Berger
помимо вашей проблемы с программированием: вы можете проверить деление на ноль;) – Niklas
Чтобы объяснить ссылку на дублируемую тему, _nextInt() _ не потребляет «новую строку», выражение, поэтому добавьте инструкцию _nextLine() _ сразу после второго _nextInt() _. – Berger