为了账号安全,请及时绑定邮箱和手机立即绑定

如果 else 条件语句在 Java 中无法正常工作

如果 else 条件语句在 Java 中无法正常工作

暮色呼如 2021-11-03 14:34:53
我实际上实现了一个简单的程序。但是下面的代码段没有按我想要的那样运行。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 段?谁能建议我这是为什么?
查看完整描述

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


查看完整回答
反对 回复 2021-11-03
?
绝地无双

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");

    }

}


查看完整回答
反对 回复 2021-11-03
  • 2 回答
  • 0 关注
  • 194 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信