2 回答
TA贡献1839条经验 获得超15个赞
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
解决方案:替换所有 OR || 用 AND &&
TA贡献1946条经验 获得超4个赞
问题在于您的 OR (||) 条件。(charAtIndexTwo !='A') || (charAtIndexTwo !='E') 现在第一部分肯定是假的,它应该跳转到 else 但 OR (||) 条件使它检查 (charAtIndexTwo !='E') 是真的。因此,它不会转到 else,而是进入 if 条件并打印 FALSE(这本身是正确的)
你只需要调整你的 IF 条件逻辑
if((charAtIndexTwo=='A')||(charAtIndexTwo=='E')||(charAtIndexTwo=='I')||(charAtIndexTwo=='O')||(charAtIndexTwo=='U')||(charAtIndexTwo=='Y'))
{
System.out.println("Invalid");
}else
{
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");
}
}
添加回答
举报