我是java初学者,我正在学习switch语句。我理解switch语句是如何工作的,但是当我尝试从switch转换为if / else时,我得到了错误的答案。而我无法解决问题?
这是switch语句
switch (y)
{
case '+':
case '-':
checkPrecedence(y, 1);
break;
case '*':
case '/':
checkPrecedence(y, 2);
break;
case '(':
opStack.push(y);
break;
case ')':
checkBrackets();
break;
default:
output = output + y;
break;
我的if / else陈述
if (y == '+' || y == '_') {
checkPrecedence(y, 1);
}
else if (y == '*' || y == '/') {
checkPrecedence(y, 2);
}
else if (y == '(') {
opStack.push(y);
}
else if (y == ')') {
checkBrackets();
}
output = output + y;
答案 0 :(得分:2)
你忘记了最后的其他事情:
if(y=='+'||y=='-'){
checkPrecedence(y,1);
}
else if(y=='*'||y=='/'){
checkPrecedence(y,2);
}
else if(y=='('){
opStack.push(y);
}
else if(y==')'){
checkBrackets();
} else {
output=output+y;
}
修改强>
并提到了(由Eagle-Eye Mick Mnemonic提供的)带有减号的错字
答案 1 :(得分:-3)
如果String使用String.equals进行比较
if(y.equals("+") || y.equals("_")) {
checkPrecedence(y,1);
}
这可能是你的错误。假设您没有使用int或char ...如果我们知道数据类型
会有所帮助