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

编程首选项-将else ifs与多个return语句一起使用吗?

公孙黎昕
2023-03-14
问题内容

代码:

public String getTemperatureMessage(double temp)
{
    if(temp < 32)
        return "Freezing";
    else if(temp < 60)
        return "Brr";
    else if(temp < 80)
        return "Comfortable";
    else
        return "Too hot";
}

关于上面的代码段,else
ifs在技术上是多余的,根本不改变行为。但是,我倾向于将它们放在此处以强调条件是排他性的。你觉得呢?你有没有什么想法?不必要或更清晰?


问题答案:

有人会说倍数回报是这里的问题。但这不是我的意思。

以我的观点,if / else if确实很重要,因为即使在您的情况下您返回了一些值,删除else仍然意味着您将不会放置它们,并且如果回报不在这里。

另外,假设某天有人想要编辑您的代码,并清理它以获得一次退货,那么这个人可能会误解您的代码并犯下这样的严重错误:

public String getTemperatureMessage(double temp){
    String message;
    if(temp < 32)
        message = "Freezing";
    if(temp < 60)
        message = "Brr";
    if(temp < 80)
        message = "Comfortable";
    else 
        message = "Too hot";
    return message;
}

为了阐明我的观点, 请保持else ,使代码清晰。



 类似资料:
  • 问题内容: 如果我通过执行单个记录插入的循环插入多个记录,则按预期返回的最后一个插入id是最后一个。但是,如果我执行多条记录插入语句: 假设上面的三个是插入表中的第一条记录。在插入语句之后,我希望最后一个插入ID返回3,但返回1。有关语句的第一个插入ID。 所以有人可以确认这是否是在多条记录INSERT语句的上下文中的正常行为。因此,我可以将代码作为基础。 问题答案: 是。这种行为是在MySQL的

  • 问题内容: 我已经看过类似于此问题的各种问答,但是还没有找到解决方案。 我所拥有的一个枚举代表了观看电视指南的不同方式… 在NDroid 类中 …当用户更改视图时,事件处理程序会收到0-2的值,而我想做这样的事情… 在Android 事件处理程序中 我已经习惯了C#枚举和select / case语句,这些语句允许类似上面的内容,而且我知道Java的处理方式有所不同,但是我根本无法理解需要做什么。

  • 问题内容: 我正在使用JDBC模板,并希望使用准备好的语句从数据库中读取数据。我遍历.csv文件中的许多行,并且在每一行上执行一些具有相应值的SQL选择查询。 我想加快从数据库中的读取速度,但是我不知道如何使JDBC模板与准备好的语句一起使用。 有PreparedStatementCreator和PreparedStatementSetter。如本例所示,它们都是使用匿名内部类创建的。但是在Pre

  • 问题内容: 我正在使用jaxws-maven-plugin为Web服务使用者应用程序执行wsimport。我正在使用2010年随JAX-WS 2.2.2 RI引入的wsimport上的选项。之所以这样做,是因为我想将WSDL捆绑在jar中。 我在制作pom时没有问题。对于插件配置,我可以执行以下操作: 当我执行构建时,我创建的jar称为,其中包含文件。在的META- INF目录中,可以找到wsdl

  • 这个问题我已经被问过很多次了,而且一直困扰着我。 我们有一个服务类,有3个DAO方法更新3个不同的表。这种设计使得对所有三个表的更新都应该是原子的。我有3个线程分别调用我的服务类,对于每个DAO方法更新,如何使用Spring事务或任何事务管理器将所有线程(操作)保持在单个事务下??有任何关于文档的想法或指针吗??谢谢

  • 问题内容: 可以从python中的单行方法返回 寻找这样的东西 尝试过,并且语法无效 我可以轻松做到: 但只是好奇我是否可以将上述if语句合并为一行 问题答案: 可以在一行上编写标准的“ if”语句: 但是pep 8样式指南建议不要这样做: 通常不建议使用复合语句(同一行上有多个语句)