我实际上实现了一个简单的程序。但是以下代码段无法按我的要求运行。
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一样,程序如何打印错误而不是跳转到其他段?有人可以建议我为什么吗?
答案 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 &&