如果是和switch语句

时间:2016-06-30 18:40:07

标签: java

我是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;

2 个答案:

答案 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 ...如果我们知道数据类型

会有所帮助