Java 程序跳过System.in
我正在创建一个程序来调用另一个创建RPN计算器的代码Java 程序跳过System.in,java,while-loop,java.util.scanner,Java,While Loop,Java.util.scanner,我正在创建一个程序来调用另一个创建RPN计算器的代码 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 - +
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”如果您的while循环位于System.out.println()的错误一侧
你的指纹在你的阅读循环之前。您意识到,
新扫描仪(System.in)
只是说“创建一个扫描仪,当您调用它的下一步…
方法时,它将从系统中读取。在中编译错误:结果无法解析为变量编译错误:方程无法解析为变量
非常感谢。现在我有一个问题,在第一次运行之后堆栈是空的,但是我可能应该把这个问题留给另一个问题。@jake94b您应该将这个答案标记为正确。这样其他人将来也能找到。
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();