gpt4 book ai didi

java条件如何确保它检查所有if语句

转载 作者:行者123 更新时间:2023-12-02 05:11:24 25 4
gpt4 key购买 nike

我在使用以下查询方法时遇到问题。如果 isRestricted 所有状态受限的报告,我需要它返回。如果 isClosed 则返回该状态已关闭的所有报告。它适用于 isRestricted,返回所有处于受限状态的报告。它还可以返回除受限和关闭之外的所有内容,这很好,但只返回 if isClosed 条件的所有内容。现在,如果我将 isClosed 条件移至顶部,则它适用于 isClosed,但不适用于 isRestricted。我错过了什么?

 protected String getRestrictedOrClosedTerm() {
if (isRestricted == null || "false".equals(isRestricted)) {
return "-status:restricted -status:closed ";
}
if (isRestricted.isEmpty()) {
return "";
}
if ("true".equals(isRestricted)) {
return "+status:restricted ";
}
if (isClosed == null || "false".equals(isClosed)) {
return "-status:closed ";
}
if (isClosed.isEmpty()) {
return "";
}
if ("true".equals(isClosed)) {
return "+status:closed ";
}

return "";
}

就好像它停在:

 if ("true".equals(isRestricted)) {
return "+status:restricted ";
}

有趣的是,如果我使用它,我会得到想要的结果,但不确定为什么:

  protected String getRestrictedOrClosedTerm() {
if ("true".equals(isClosed)) {
return "+status:closed ";
}
if ("true".equals(isRestricted)) {
return "+status:restricted ";
}
if (isRestricted == null || "false".equals(isRestricted)) {
return "-status:restricted -status:closed ";
}
return "";
}

最佳答案

当您在方法中使用return时,它将退出该方法并返回值。如果您使用类似 StringBuilder 的内容,你可以看到所有的输出:

        protected String getRestrictedOrClosedTerm() 
{
StringBuilder sb = new StringBuilder();
if (isRestricted == null || "false".equals(isRestricted)) {
sb.append("-status:restricted -status:closed\n");
}
if (isRestricted.isEmpty()) {
sb.append("empty\n");
}
if ("true".equals(isRestricted)) {
sb.append("+status:restricted\n");
}
if (isClosed == null || "false".equals(isClosed)) {
sb.append("-status:closed\n");
}
if (isClosed.isEmpty()) {
sb.append("empty\n");
}
if ("true".equals(isClosed)) {
sb.append("+status:closed\n");
}

return sb.toString();
}

关于java条件如何确保它检查所有if语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27303459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com