Я работаю над примером, используя оператор do-while loop и switch. То, что мне в основном нужно, - это аккумулировать числа и в зависимости от ввода пользователем добавлять, вычитать, умножать или делить (тип мини-калькулятора).Сбросить переменные обратно до нуля в цикле do-while Java
Проблема заключается в том, когда я прошу пользователя вернуться в главное меню, программа не сбрасывает значение, как оно есть до цикла. Результатом всегда является предыдущий результат.
Код, он объяснит это лучше.
import java.util.Scanner;
public class SwitchLoopNumbers{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int numbers=0;
int result=0;
int option;
boolean quit = true;
String done="";
do{
System.out.println("CALCULATOR MENU");
System.out.println("********** ****");
System.out.println("\n1. Add");
System.out.println("2. Substract");
System.out.println("3. Multiply");
System.out.println("4. Divide");
System.out.println();
System.out.print("Enter your option >> ");
option = scan.nextInt();
while(quit){
switch(option){
case 1:
System.out.print("Enter numbers, type 0 when done >> ");
numbers = scan.nextInt();
if(numbers==0)
quit=false;
result +=numbers;
break;
case 2:
System.out.print("Enter numbers, type 0 when done >> ");
numbers = scan.nextInt();
result -=numbers;
if(numbers==0)
quit=false;
break;
}
}
System.out.println("The total is: "+result);
System.out.println("Back to main menu ? y/n ");
scan.nextLine();
done = scan.nextLine();
//I did reset numbers and result here to zero but it did not work
}
while("y".equalsIgnoreCase(done));
System.out.println("Thank you for using calculator");
}
}
я вижу. То, что я делал раньше, - это сброс чисел и результат точно так же, как в вашем ответе, но я не сбросил цикл обратно в true. Теперь это имеет смысл, работает, как и предполагалось. Спасибо за помощь. – Ivanko