【问题标题】:i don't understand 'return of if statement' in java [closed]我不明白 java 中的“返回 if 语句”[关闭]
【发布时间】:2025-12-25 09:30:12
【问题描述】:

我有一个问题..... 今天我做了类和方法。 在制作方法后,我发现了一个错误。 那是“我如何使用'return'?”。

哪些代码有问题? 我没发现问题。

public boolean locking(){

    if (false)

        System.out.print("Open the door");

        return false;

    else

        System.out.print("Now lock the door");

        return true; //<- how can i express 'return'?

}

【问题讨论】:

  • 该代码在语法上不正确。您至少缺少一些大括号。
  • 如果只是丢了大括号后的学习代码,没问题。否则你的 if 条件将永远不会被评估
  • 问题:哪些代码有误?。响应:示例中的那个。请发布mvce。谢谢。
  • 您的代码总是进入 else 子句,因为 if(false) 永远不会为真。我们只能猜测您想要检查某个变量而不是 if(false),但是如果您告诉我们代码应该做什么、发生什么以及您期望发生什么,您会得到更好的帮助 - 这会有所帮助如果您发布了一个小而 100% 完整的示例,那就很多了。
  • 有人在编辑时添加了缺少的括号,这使得整个问题毫无意义 - 我再次删除了它们。

标签: java if-statement return boolean boolean-expression


【解决方案1】:

此代码缺少括号。所以第一个if只指第一个System.out,而不是return

尝试以下方法:

public boolean locking() {
    if (false) {
        System.out.print("Open the door");
        return false;
    } else {
        System.out.print("Now lock the door");
        return true;
    }
}

编辑:请记住,上面代码中定义的 if 条件绝对没有意义。所以要确保你总是在比较一些东西,否则你总是会得到相同的结果。

知道使用返回语句将退出方法也很重要,这意味着return 以下的任何代码都不会被执行。这允许您省略 if 语句的 else 部分。因为当条件满足时,第一个返回将被执行并离开方法,当它不满足时,代码继续只有其他可能性。这使代码更轻巧,但在使用多个 if 语句时会受到警告。

public boolean locking() {
    if (false) {
        System.out.print("Open the door");
        return false;
    }

    System.out.print("Now lock the door");
    return true;
}

【讨论】:

  • 您稍微修正了语法,但第一个 if 条件绝对没有意义......所以 OP 绝对应该记住这一点。此外,当仅使用基于一个条件的返回时,无需定义elsereturn 将退出该方法并且不执行其下面的任何代码。
  • 没错。这个问题不是很具体:“我发现一个错误”。我修复了它,以便代码不会产生编译错误,认为这将有助于 OP 学习:)
【解决方案2】:

当你使用一些语句如 (if, for ,...) 时,如果你想在 (if) 语句中使用多个语句,你应该使用括号。

这是错误的(返回值不依赖于(if)语句):

if (false)
    System.out.print("Open the door");
    return false;

但这是真的(当你使用括号时):

if (false)
{
    System.out.print("Open the door");
    return false;
}

只需在if 之后使用括号{ your code }

【讨论】: