Java中的语法错误与else

我对“其他”有两个错误,我不知道该怎么办。 他们标有评论!! “Punto”和“Cuadrante”是import的。 还有一个枚举。

public static Cuadrante obtenerCuadrante (Punto p){ Cuadrante res = Cuadrante.EJE; if (p.getX()>0 && p.getY()>0){ res = Cuadrante.PRIMER_CUADRANTE; }else{ if (p.getX()>0 && p.getY()<0){ res = Cuadrante.CUARTO_CUADRANTE; }else{ //Here appears an error: Syntax error on token "else".!!!!!!!!!!!! if (p.getX()0){ res = Cuadrante.SEGUNDO_CUADRANTE; }else{ //And here too.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! if (p.getX()<0 && p.getY()<0){ res = Cuadrante.TERCER_CUADRANTE; }else{ res = Cuadrante.EJE; } } } } return res; } 

你可以使用if和else if来实现你想要的

 if(condition){ // if condition is true } else if(condition1) { // if condition1 is true & condition is false } else if(condition2) { // if condition2 is true & condition1 , condition is false } else { // if condition2, condition1 & condition is false } 

你可以拥有更多的其他人。

您当前的代码是缺少一些结束括号} ,导致您有错误,可以修复如下:

 public static Cuadrante obtenerCuadrante (Punto p){ Cuadrante res = Cuadrante.EJE; if (p.getX()>0 && p.getY()>0){ res = Cuadrante.PRIMER_CUADRANTE; } else { if (p.getX() > 0 && p.getY() < 0) { res = Cuadrante.CUARTO_CUADRANTE; } else { if (p.getX() < 0 && p.getY() > 0) { res = Cuadrante.SEGUNDO_CUADRANTE; } else { if (p.getX() < 0 && p.getY() < 0) { res = Cuadrante.TERCER_CUADRANTE; } else { res = Cuadrante.EJE; } } } } return res; } 

另一种/更好的方法是:

 public static Cuadrante obtenerCuadrante (Punto p){ Cuadrante res = Cuadrante.EJE; if (p.getX()>0 && p.getY()>0){ res = Cuadrante.PRIMER_CUADRANTE; } else if (p.getX()>0 && p.getY()<0){ res = Cuadrante.CUARTO_CUADRANTE; } else if (p.getX()<0 && p.getY()>0){ res = Cuadrante.SEGUNDO_CUADRANTE; } else if (p.getX()<0 && p.getY()<0){ res = Cuadrante.TERCER_CUADRANTE; } else { res = Cuadrante.EJE; } return res; } 

可能你的代码应该是这样的:

  public static Cuadrante obtenerCuadrante (Punto p){ Cuadrante res = Cuadrante.EJE; if (p.getX()>0 && p.getY()>0){ res = Cuadrante.PRIMER_CUADRANTE; }else if (p.getX()>0 && p.getY()<0){ res = Cuadrante.CUARTO_CUADRANTE; }else if (p.getX()<0 && p.getY()>0){ res = Cuadrante.SEGUNDO_CUADRANTE; }else if (p.getX()<0 && p.getY()<0){ res = Cuadrante.TERCER_CUADRANTE; }else{ res = Cuadrante.EJE; } return res; } 

你只能有一个人。

而不是这个

 else{ if (p.getX()>0 && p.getY()<0){ res = Cuadrante.CUARTO_CUADRANTE; } 

做这个:

  else if(p.getX()>0 && p.getY()<0){ res = Cuadrante.CUARTO_CUADRANTE; } 

为除了最后一个“其他”之外的所有“其他”做同样的事情