如果 else 条件语句在 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,控制台会打印 false。它不可能发生。我认为,因为在第一个 if 段中,我检查是否charAtIndexTwo等于 A。既然是 A,程序如何打印 false 而不是跳转到 else 段?谁能建议我这是为什么?


暮色呼如
浏览 199回答 2
2回答

紫衣仙女

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 &&

绝地无双

问题在于您的 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");    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java