首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Evaluate IF语句

Java Evaluate IF语句
EN

Stack Overflow用户
提问于 2016-10-18 14:47:05
回答 3查看 108关注 0票数 0
代码语言:javascript
复制
String groupType="local";

        if(groupType==null ||groupType.equals("")||!groupType.equalsIgnoreCase("local")||!groupType.equalsIgnoreCase("global")||!groupType.equalsIgnoreCase("universal")){
              System.out.print("evlauate to true ");

        }

为什么这段代码的计算结果为真,!groupType.equalsIgnoreCase("local")应该将其设置为假,

EN

回答 3

Stack Overflow用户

发布于 2016-10-18 14:49:36

即使您将条件减少到

代码语言:javascript
复制
if (!groupType.equalsIgnoreCase("local")||!groupType.equalsIgnoreCase("global"))

这永远是正确的,因为groupType不能同时等于“本地”和“全局”。

您可能希望使用&& (AND)而不是|| (OR)。

代码语言:javascript
复制
if (groupType == null || groupType.equals("") ||
    (!groupType.equalsIgnoreCase("local") && !groupType.equalsIgnoreCase("global") && !groupType.equalsIgnoreCase("universal"))) {
    System.out.print("evaluate to true ");
}

现在,如果groupType为null或空,或者不等于"local"/"global"/"universal“值之一,它将计算为true。我猜这就是你想要的。

票数 4
EN

Stack Overflow用户

发布于 2016-10-18 14:56:53

让我们看一下||运算符的每个操作数:

  • 字符串是否等于null?False。
  • 字符串是空的吗?False。
  • 字符串是否不等于"local"?False。
  • 字符串是否不等于"global"?
  • 字符串是否不等于“

”?正确。

其中两个条件的计算结果为true。因此,整个if语句的计算结果为true。

票数 0
EN

Stack Overflow用户

发布于 2016-10-18 15:59:57

也许你想要这样:

代码语言:javascript
复制
if(groupType==null ||groupType.equals("")
   ||!(groupType.equalsIgnoreCase("local")
       ||groupType.equalsIgnoreCase("global")
       ||groupType.equalsIgnoreCase("universal")
      )
  )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40101332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档