Java中的语法错误与else

时间:2014-10-21 16:44:42

标签: java

我有两个错误" else"而且我不知道该怎么做。他们标有评论!! "蓬"和" Cuadrante"是进口的。还有一个枚举。

 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 && p.getY()>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;
    }

3 个答案:

答案 0 :(得分:4)

您可以使用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;
}

答案 1 :(得分:2)

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

 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;
    }

答案 2 :(得分:1)

你只能有一个人。

而不是这个

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

            }

这样做:

 else if(p.getX()>0 && p.getY()<0){

                        res = Cuadrante.CUARTO_CUADRANTE;

                }

为所有&#34;其他&#34;做同样的事情。除了最后一个&#34; else&#34;