2015-10-08 3 views
-1

Я создаю программу для вызова другого кода, который создает калькулятор RPNПрограмма пропускает System.in

 RPNCalculator Calculator = new RPNCalculator(); 
     System.out.println("Please enter a valid post-fix expression one token " + 
        "at a time with a space between each token (e.g. 5 4 + 3 2 1 - + *)"); 
     System.out.println("Each token must be an integer or an operator (+,-,*,/)"); 
     Scanner reader= new Scanner(System.in); 


     System.out.println(); 
     System.out.println("That expression equals " + result); 
     System.out.println(); 

    while (true) 
    {  
     equation = reader.nextLine(); 
     result=Calculator.evaluateEquation(equation); 
    } 

Однако при запуске программы, она даже не дает возможность ввода ничего и возвратит «Это выражение равно 0»

+0

Ваши отпечатки находятся перед вашим циклом чтения. Вы понимаете, что «новый сканер (System.in)« просто говорит »создает сканер, который при вызове его методов« next ... »будет считываться из« System.in » – RealSkeptic

+0

Ошибка компиляции:' result can not разрешаем переменную' – Andreas

+0

Ошибка компиляции: 'уравнение не может быть разрешено переменной * – Andreas

ответ

0

У вас есть цикл while на неправильной стороне System.out.println().

Scanner reader= new Scanner(System.in); 
while (true) 
{  
    equation = reader.nextLine(); 
    //YOU ALSO need a reason to break out of this loop. 
    //LIKE IF equation == "EXIT" or "0" 
     //BREAK 
    result=Calculator.evaluateEquation(equation); 
} 
System.out.println(); 
System.out.println("That expression equals " + result); 
System.out.println(); 
+0

Большое спасибо. Теперь у меня проблема с тем, что стек был пуст после первого прогона, но я должен, вероятно, сохранить это для другого вопроса. – jake94b

+0

@ jake94b, вы должны пометить этот ответ правильно. Так что другие могут найти в будущем. –

Смежные вопросы