Java三元运算符错误

时间:2014-12-03 21:27:37

标签: java ternary

  1. Errors are illegal start of an expression
  2. error: not a statement
  3. ';' expected
  4. 我在takeStix()中收到有关if else语句的错误。

    private int numStix;
    
    public int getNumStix() {return numStix;}
    
    public boolean takeStix(int number) {
          ( number <= 3 && number <= getNumStix() ) ? return true : return false;
    }
    

2 个答案:

答案 0 :(得分:6)

您不能在三元运算符中添加语句(如return true),只能使用值。

所以你可以把:

return (number <= 3 && number <= getNumStix()) ? true : false;

但你甚至不需要三元运算符:

public boolean takeStix(int number) {
    return (number <= 3 && number <= getNumStix());
}

答案 1 :(得分:1)

在你的情况下,正如@khelwood所示,你不需要三元表达式。但是,通常,在return语句中使用三元表达式的格式应为

return boolean_condition ? something : something_else

例如,

public boolean takeStix(int number) {
    return number <= Math.min(3, getNumStix()) ? true : false;
}