2.16 逻辑运算符

种逻辑关系:与、或、非。
这三种逻辑计算的参与者和计算结果均是布尔值。
(1)与,就是口语中的“并且”。用符号“&&”代表“与”关系。
“与”的两边都能计算出布尔值,只有两边的值都是true,整个命题的值才是true,其他情况都是false。
例如:变量a大于5并且小于10,用java表达就是:
m = a>5 && a<10;
m代表了整个命题,是否成立要看a的值。
如果a的值是100,那么a>5成立,但是a<10不成立,那么此时m的值就是False。如果a的值是6,两个条件都成立则这个命题成立。只有a大于5并且大于10才成立。
假如a是整数,那么符合这个命题的a的值有6、7、8、9。

“与”还可以连着写多个,例如
boolean bool=a> 5 && b<3 && c> a;

只有每一部分的值都为true,bool的值才是true

(2)或,就是或者,用“||”代表“或”关系。
两个命题有一个成立,整个命题就成立。
例如这样一个命题:变量a大于10或者小于0,用java表达就是:
m=a> 5 || a<10;

a大于5或者a小于10只要有一个成立,m的值就是true,两个都不成立,m的值才是False。
或也可以连着写多个:
boolean bl=a> 5 || b<3 || c> a;

(3)“非”就是否定、置反,用!表示,它是一个单目运算符(即计算只需要一个值)。
例如: !(a<5) 这个表示a小于5的否定,也就是a大于等于5。

这是三个逻辑的总结,左边两列是a和b的值,右边的列是根据a和b的值得到的值:
aba && b
a || b
! a
truetruetruetruefalse
truefalsefalsetruefalse
falsetruefalsetruetrue
falsefalsefalsefalsetrue

练习题

  • 完成下面的命题
    1.a是大写字母 (2分) [填空(编程批改)]
            
    2.a是数字 (2分) [填空(编程批改)]
            
    3.a是字母 (2分) [填空(编程批改)]
            
    4.a是数字或者字母 (4分) [填空(编程批改)]
            
    5.a不是大写字母 (2分) [填空(编程批改)]
            
    6.a能被4整除但不能被8整除 (2分) [填空(编程批改)]
            
    7.a是一个能被3整除的偶数 (2分) [填空(编程批改)]
            
    8.a是一个能被3整除的奇数 (2分) [填空(编程批改)]
            
    9.如何“表达test是小写字母”这个命题 [阅读]
    char test='A';boolean bl=test >= 'a' && test <= 'z';/*这样的写法就相当于这样一个命题:字符变量test是小写字母。如果命题成立那么bl的值是true,如果不成立bl的值是false。 为什么可以这么写呢?
    这是因为所有小写字母是按照字母表排列的,a后面是b、c,一直到z,如果要用ascii码数字来比较,那就是: */char test='A';boolean b=test >= 97 && test <= 122;/*或者混合起来写: */char test='A';boolean b=test >= 97 && test <= 'z';