String groupType="local";

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

        }


为什么此代码的评估结果为true,!groupType.equalsIgnoreCase(“ local”)应将其设置为false,

最佳答案

即使您将条件减少到

if (!groupType.equalsIgnoreCase("local")||!groupType.equalsIgnoreCase("global"))


总是如此,因为groupType不能同时等于“ local”和“ global”。

您可能要使用&&(AND)代替||(OR)。

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


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

关于java - Java评估IF语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40101332/

10-10 10:07