是我的一个作业,用stack做expression,不过我不明白,代码没啥问题啊,怎么就是编译时候老是告诉我constant expression required
:hippie:
:hippie:
代码:
public final static int UNARY = "#".hashCode();
public final static int SIN = "sin".hashCode();
public final static int COS = "cos".hashCode();
public final static int TAN = "tan".hashCode();
public final static int LOG = "log".hashCode();
public final static int EXP = "exp".hashCode();
public final static int POW = "^".hashCode();
public final static int MUL = "*".hashCode();
public final static int DIV = "/".hashCode();
public final static int ADD = "+".hashCode();
public final static int SUB = "-".hashCode();
public double eval(){
...........................
while (!opStack.isEmpty()){
stackValA = ((Double)valStack.pop()).doubleValue();
int opTrigger = ((opStack.pop()).toString()).hashCode();
opTriggerHandle(opTrigger);
}
return 0;
}
public void opTriggerHandle(int opTrigger)
{
switch (opTrigger)
{
case UNARY : Unary(); break; //unary operator
case SIN : Sine(); break; //sin
case COS : Cosine(); break; //cos
case TAN : Tangent(); break; //tan
case LOG : Logarithm(); break; //log
case EXP : PowerOfe(); break; //exp
default:
stackValB = ((Double)valStack.pop()).doubleValue();
switch (opTrigger)
{
case POW: Power(); break; //pow
case MUL: Multiplication(); break; //product
case DIV: Division(); break; //divide
case ADD: Addition(); break; //plus
case SUB: Subtraction(); break; //minus
}
break;
}
}
--------------------Configuration: <Default>--------------------
C:\Documents and Settings\Torune\Desktop\2402\Expression.java:92: constant expression required
case UNARY : Unary(); break; //unary operator
^
C:\Documents and Settings\Torune\Desktop\2402\Expression.java:93: constant expression required
case SIN : Sine(); break; //sin
^
C:\Documents and Settings\Torune\Desktop\2402\Expression.java:94: constant expression required
case COS : Cosine(); break; //cos
^
C:\Documents and Settings\Torune\Desktop\2402\Expression.java:95: constant expression required
case TAN : Tangent(); break; //tan
^
C:\Documents and Settings\Torune\Desktop\2402\Expression.java:96: constant expression required
case LOG : Logarithm(); break; //log
^
C:\Documents and Settings\Torune\Desktop\2402\Expression.java:97: constant expression required
case EXP : PowerOfe(); break; //exp
^
C:\Documents and Settings\Torune\Desktop\2402\Expression.java:102: constant expression required
case POW: Power(); break; //pow
^
C:\Documents and Settings\Torune\Desktop\2402\Expression.java:103: constant expression required
case MUL: Multiplication(); break; //product
^
C:\Documents and Settings\Torune\Desktop\2402\Expression.java:104: constant expression required
case DIV: Division(); break; //divide
^
C:\Documents and Settings\Torune\Desktop\2402\Expression.java:105: constant expression required
case ADD: Addition(); break; //plus
^
C:\Documents and Settings\Torune\Desktop\2402\Expression.java:106: constant expression required
case SUB: Subtraction(); break; //minus
^
11 errors
Process completed.