Я изо всех сил пытаюсь получить правильную область видимости для моей переменной "input".
Я делаю калькулятор для университетской задачи, и у меня все работает отдельно от того, когда я пытался сделать это цикломоборачивая мой основной код в цикл do-while. Поскольку переменная «input» объявлена в части «do» цикла, она не знала, что это было, когда я пытался использовать ее в состоянии «while». Чтобы исправить это, я объявил «input» как строку перед циклом do-while, чтобы сделать его глобальным. Однако теперь сканер, который принимает значение ввода, не будет работать. Я делаю что-то глупое или я что-то упускаю?
import java.util.Scanner;
public class Calculator {
public static void main(String [] args) {
String input;
do {
System.out.println("Welcome to the calculator. Please enter an operator (+, -, /, *) below:");
Scanner myScanner = new Scanner(System.in);
String oper = myScanner.nextLine();
System.out.println("Now please enter two numbers:");
double a = myScanner.nextDouble();
double b = myScanner.nextDouble();
switch (oper) {
case "+" :
System.out.println(CalculatorUtils.add(a, b));
break;
case "-" :
System.out.println(CalculatorUtils.subtract(a, b));
break;
case "/" :
System.out.println(CalculatorUtils.divide(a, b));
break;
case "*" :
System.out.println(CalculatorUtils.multiply(a, b));
break;
}
System.out.println("Do you want to complete another calculation? (y/n)");
input = myScanner.nextLine();
}
while (input.contentEquals("y"));
}
}
Я ожидаю, что это будет вывод: Добро пожаловать в калькулятор. Пожалуйста, введите оператор (+, -, /, *) ниже: + Теперь введите два числа: 32,5 12,5 45,0 Вы хотите выполнить еще один расчет? (y / n) y (это то место, где код будет начинаться заново)
Однако я не могу ввести свои данные, когда меня спрашивают, не хочу ли я провести еще один расчет.