为什么这个布尔值在应该为真时保存为false?

时间:2015-09-09 14:34:47

标签: java boolean

正如标题所说,当我输入字符'y'或'Y'时,布尔值应该设置为true但是它存储为false,必须有一些我逻辑上缺少的东西我是不注意?你能明白这是为什么吗?

boolean boot;
char isThereABoot;  

void setBoot(boolean x ){
    boot = x;
}

boolean getBoot() {
    return boot;
}

....

while (isThereABoot != 'y' && isThereABoot != 'Y' && isThereABoot != 'N' && isThereABoot != 'n') {
        System.out.println("Does this car have a boot? Y = Yes | N = No");
        isThereABoot = entry.next().charAt(0);
        if(isThereABoot == 'Y' && isThereABoot == 'y') {
            setBoot(true);
        }
        else if (isThereABoot == 'N' || isThereABoot == 'n') {
            setBoot(false);
        }

    }

然后将该值写入文本文件,该文本文件中的值始终为false。

1 个答案:

答案 0 :(得分:0)

表达式

isThereABoot == 'Y' && isThereABoot == 'y'

表示:“变量isThereABoot是否等于字符'Y'和'y'?”,这绝不是这种情况。它应该是“变量isThereABoot等于字符'Y'或'y'?”,或代码:

isThereABoot == 'Y' || isThereABoot == 'y'

&&表示AND

||表示OR