【问题标题】:Return in an if-statement在 if 语句中返回
【发布时间】:2018-04-18 17:16:18
【问题描述】:
if(something == "") return;

这是否意味着如果某些东西是“”又名空,只需退出该功能? 我尝试搜索不同的答案。他们都没有解释这段代码的作用。

【问题讨论】:

  • " "(带空格)与""(不带空格)不同
  • 首先,==是用来比较的,不是=。另外,要比较字符串值(不是引用),您需要使用String#equals
  • "None of them explained what this piece of code does." - 我不希望如此,因为这段代码无法编译。 Stringboolean 是不兼容的类型。
  • stackoverflow.com/a/513839/4411297 这是一个提到 Java 字符串比较的答案。我不确定“某物”是哪种数据类型,但我假设它是一个字符串。

标签: java if-statement return


【解决方案1】:

您有 2 个错误。

  1. = 不检查是否相等。 = 为变量赋值。对于原始数据类型(如整数),您需要使用 ==

  2. 对于字符串,您需要使用string.equals(anotherString) 来检查是否相等

【讨论】:

    【解决方案2】:

    return 立即退出您所在的当前函数。

    这意味着在 return 执行后没有执行任何代码,只有一个异常:

    try {
        ...
        return;
    } finally {
        // this code will be executed even if a return is called inside the 'try' block!
    }
    

    当您想退出void 方法时,可以使用return;(不返回值)。


    旁注:Don't compare strings with ==. Compare strings with .equals(...)


    回到你原来的问题:如果代码是这样的:

    if (something.equals("")) return;
    

    那么是的,这意味着如果 'something' 为空,则该方法返回!

    【讨论】:

    • if(something == "") return; 有什么用处;然后?我从中得到的是就像评论一样
    • 查看我的答案中的链接(感谢@Turing85),了解==equals 之间差异的详细信息。代码something == "" 在某些情况下可以评估为真。但它几乎从来都不是你想要用字符串做的事情!
    • @HelpMe123 我再次更新了我的答案,回到你原来的问题。
    猜你喜欢
    • 2015-07-28
    • 2018-05-07
    • 2021-08-31
    • 2011-04-12
    • 2013-04-05
    • 2020-09-12
    • 2017-07-27
    • 2016-02-12
    相关资源
    最近更新 更多