【问题标题】:Java breaking vs returning [duplicate]Java破坏与返回[重复]
【发布时间】:2015-05-23 02:17:42
【问题描述】:

我正在使用返回 true 的布尔值。当这样的事情发生时:

public boolean t(String label, String[] arguments) {
    boolean j = false;
    if (!j) {
        return true;
    }
    return true;
}

但是,在这个布尔值中,我有一个 switch 语句。您可能知道,您通常会跳出 switch 语句。但是,我正在做类似这样的测试,以测试布尔值是真还是假。我会在 switch 语句中返回,还是在布尔值为 false 时中断?

一个例子是这样的:

switch (arguments.length) {
    case 0:
        if (j) return true;
        break;
    default:
        break;
}

哪个更有用,将 return true 换成 break,还是保持不变?

【问题讨论】:

  • 请提供更多上下文。此外,如果您 returnbreak 是不必要的(它实际上是无法访问的)。

标签: java switch-statement boolean break


【解决方案1】:

break 语句将终止switch 语句的执行并继续执行该方法。 return 语句将完全离开该方法。

这实际上是一个偏好问题,至于哪个更好。归结为方法设计。

我会说在大多数情况下,就像你上面所说的那样,最好直接使用return 语句并完全离开该方法。

也就是说,这个:

public boolean t(String label, String[] arguments) {
    boolean j = false;
    if (!j) {
        return true;
    }
    return true;
}

可以简化为:

public boolean t(String label, String[] arguments) {   
    return true;
}

如果您只检查一个变量的一个条件,那么您不需要switch 语句;它不是最佳的。

我正在做类似的测试布尔值是真还是假

您不应该真正“测试”布尔变量的真假,只需返回它们即可。

【讨论】:

  • 其实可以简化为return true;
  • 嗯,是的。我只是想 j 在实现中可能意味着什么。
  • 我只是在做一个例子,我实际使用的 switch 语句不仅仅是一个案例。如果布尔值在另一个布尔值内部,返回布尔值将如何做任何事情。
【解决方案2】:

Return call 总是将处理程序返回给被调用的函数,其中 switch 语句中的 break 是为了避免检查 switch case 中存在的其他情况。如果您不希望您的程序返回任何值,那么 break 就足够了,否则需要返回。

【讨论】:

    猜你喜欢
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多