如果其他条件语句不能在Java中正常工作

时间:2018-10-07 06:11:02

标签: java

我实际上实现了一个简单的程序。但是以下代码段无法按我的要求运行。

if((charAtIndexTwo !='A') || (charAtIndexTwo !='E') || (charAtIndexTwo !='I') || (charAtIndexTwo !='O') || (charAtIndexTwo !='U') || (charAtIndexTwo !='Y')) {
        System.out.println((charAtIndexTwo!='A'));
        if((totalOne%2 ==0) && (totalTwo%2==0) && (totalThree%2==0) && (totalFour%2==0)) {
            System.out.println("Valid");
        }
        else {
            System.out.println("invalid");
        }
    }
    else{
        System.out.println("Invalid");
    }

如果我使用charAtIndexTwo = A运行程序,则控制台打印为假。这不可能发生。我认为,因为在第一个if段中,我检查charAtIndexTwo是否等于A。正如A一样,程序如何打印错误而不是跳转到其他段?有人可以建议我为什么吗?

2 个答案:

答案 0 :(得分:0)

问题出在您的OR(||)条件上。 (charAtIndexTwo!='A')|| (charAtIndexTwo!='E') 现在,第一部分肯定是假的,应该跳到其他部分,但是OR(||)条件使其可以检查(charAtIndexTwo!='E')是否为TRUE。因此,它进入if条件并显示FALSE(其本身是正确的),而不是进行else操作

您只需要调整IF条件逻辑

opencv-python-contrib

答案 1 :(得分:0)

if((charAtIndexTwo !='A') || (charAtIndexTwo !='E') || (charAtIndexTwo !='I') || 
(charAtIndexTwo !='O') || (charAtIndexTwo !='U') || (charAtIndexTwo !='Y'))

在这一行上,您要使用OR条件进行评估,这意味着如果条件之一为True,则程序将跳至If。

当charAtIndexTwo = A时

(charAtIndexTwo !='A') = False || (charAtIndexTwo !='E') = True 
// this is where it enters the If Condition

解决方案:全部替换或||与AND &&