当前位置: 首页 > 面试题库 >

Java中带有else的语法错误

封永嘉
2023-03-14
问题内容

我的“其他”有两个错误,我不知道该怎么办。他们被标记为评论!!导入了“ Punto”和“ 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;
    }

问题答案:

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


 类似资料:
  • 我们可以像这样使用if-field: 但是这里有一些问题,我不明白为什么。 > 如果我运行(count已定义),则会引发错误: 我们能不能先分配一个值? 当我运行count=1 if False else l.append(count 1)(注意:count=0,l=[])时,将引发一个错误: l的结果是。 使用相同的条件,如果使用if-else块,则不会出现错误。 你能解释一下区别吗?

  • 问题内容: 我在这里很陌生,但让我们直接解决这个问题:当我为一个类项目计算器编写以下代码时,遇到了“令牌错误”。这是完整的错误消息: 我写了这段代码: 这就是代码,我注释了令牌错误所在的区域。也许解决方案就对了。我希望我的代码成为一个计算器,以便你们可以修正我的代码,使其不与数学运算冲突。谢谢,感谢您的帮助。 问题答案: 问题是分号之后的分号。 语法为 条件 expression-or-block

  • 这是我到目前为止的MySQL代码: 在命令行上在MySQL中运行此代码会给我这个错误: 错误1064 (42000):您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,在第7行的“(TypeID))”附近使用正确的语法 我尝试过创建不同的测试表,省略了NULL/NOT NULL,但似乎什么都不起作用。任何帮助都将非常感谢!

  • 我不知道该怎么做,是不是有一个错误,我遵循了所有的步骤,在教程中,我正在看。它只是说删除令牌

  • 所以我在第37行的else if中出现了错误,我不知道为什么会发生这种情况。IDE说:“令牌”else“语法错误,删除这个令牌”。多谢了。

  • 下面是我的playbook目录结构。 Ansible版本:2.7.2 python2版本:2.7.5 python3版本:3.7.1