嵌套语句无法访问Java局部变量
我正在做一个项目,遇到了一个问题。我有以下代码:嵌套语句无法访问Java局部变量,java,variables,methods,Java,Variables,Methods,我正在做一个项目,遇到了一个问题。我有以下代码: private void evaluateCurrentOperation() { double token; Object currentOperator = thisExprStack.pop(); double currentOperand; double result = 0.0; while (!thisOpStack.isEmpty()) { currentOperand =
private void evaluateCurrentOperation() {
double token;
Object currentOperator = thisExprStack.pop();
double currentOperand;
double result = 0.0;
while (!thisOpStack.isEmpty()) {
currentOperand = thisOpStack.pop();
if (currentOperator.equals('+')) {
result += currentOperand;
}
if (currentOperator.equals('-')) {
result -= currentOperand;
}
if (currentOperator.equals('/')) {
result /= currentOperand;
}
if (currentOperator.equals('*')) {
result *= currentOperand;
}
}
thisExprStack.push(result);
}
我正在使用Eclipse,当我试图在if块中使用局部变量“result”时,我收到一条警告,说result没有被使用。我很困惑,因为我清楚地使用了这个变量,但它的行为就像它不存在一样。我是Java新手,所以不知道如何调试代码
当我将“结果”推到“thisExprStack”上时,它将推0.0。它初始化为的值。如何将“结果”推送到if块中?忽略前面的答案。相关的thisExprStack和thisOpStack是否已填充?即使将其更改为此,结果仍不受影响。当然不是,此答案不正确,除了一些指令和更严格的键入之外,强制转换不会改变任何内容。thisExprStack已填充,我刚刚意识到我在下一部分遇到了问题。我应该将操作数从thisExprStack弹出到thisOpStack,直到找到运算符为止。我不知道如何通过while循环来实现这一点。变量显然是“可访问的”,因为您可以分配给它。问题是您没有在任何地方读取变量,因此编译器警告您,尽管您正在写入变量,但随后没有在任何地方“使用”它?