在编程语言的设计之初,它们除了可以进行数学计算,还常常用于逻辑推理和条件判断。为了实现逻辑判断的功能,Java引入了一种布尔类型boolean,用来表示“真”和“假”。该类型的变量只允许两个取值,即true和false,其中true对应真值,而false对应假值。

如同数值变量拥有加减乘除四则运算那样,布尔变量也拥有逻辑方面的四则运算,包括“非”、“与”、“或”、“异或”,下面分别加以介绍。

1、“非”运算求的是某布尔变量的对立值,若原变量值为true,则“非”运算的结果为false,若原变量值为false,则“非”运算的结果为true。Java把符号“!”加在布尔变量前面,表示这里进行“非”运算。

2、“与”运算求的是两个布尔变量的逻辑交集,只有两个变量都为true时,运算结果才为true,其余情况的运算结果都为false。Java把符号“&”放在两个布尔变量之间,这里表示进行“与”运算。

3、“或”运算求的是两个布尔变量的逻辑并集,只要两个变量有一个为true,运算结果就为true;只有两个变量都为false时,运算结果才为false。Java把符号“|”放在两个布尔变量之间,表示这里进行“或”运算。

4、“异或”运算求的是两个布尔变量的逻辑相异,当两个变量同为true或者同为false时,运算结果为false;当两个变量一个为true另一个为false时,运算结果为true。Java把符号“^”放在两个布尔变量之间,表示这里进行“异或”运算。

下面是对布尔变量进行“非”、“与”、“或”、“异或”等逻辑运算的代码例子:

// boolean表示布尔类型,该类型的变量只允许两个取值,即true和false

boolean zhen = true; // true表示为真

System.out.println("zhen="+zhen);

boolean jia = false; // false表示为假

System.out.println("jia="+jia);

// “!”加在布尔变量前面表示进行“非”运算

boolean not = !zhen;

System.out.println("not="+not);

// “&”放在两个布尔变量之间表示进行“与”运算

boolean and = zhen&jia;

System.out.println("and="+and);

// “|”放在两个布尔变量之间表示进行“或”运算

boolean or = zhen|jia;

System.out.println("or="+or);

// “^”放在两个布尔变量之间表示进行“异或”运算

boolean xor = zhen^jia;

System.out.println("xor="+xor);

上述的四则逻辑运算当中,“与”、“或”、“异或”三种都需要两个布尔变量才能判断,这意味着:倘若某个变量既参与逻辑运算,又能保存运算结果,此时的逻辑运算就转变为对该变量的自处理。譬如,对一个布尔变量与另一个布尔值进行“与”运算,且运算结果仍旧保存在该变量中,则可使用运算符“&=”简化赋值操作。如同数值计算“x = x+7”等价于“x += 7”那般,也存在布尔计算“value = value&false”简化成“value &= false”的情况。依此类推,对布尔变量自身进行或运算,可利用新的赋值运算符“|=”;对布尔变量自身进行异或运算,可利用新的赋值运算符“^=”。这些逻辑赋值符的详细应用代码如下所示:

boolean value = true;

System.out.println("value="+value);

// 对布尔变量进行“与”运算,且运算结果仍旧保存在该变量中,则可使用运算符“&=”

value &= false; // 该行代码等同于 value = value&false;

System.out.println("value="+value);

// 对布尔变量进行“或”运算,且运算结果仍旧保存在该变量中,则可使用运算符“|=”

value |= true; // 该行代码等同于 value = value|true;

System.out.println("value="+value);

// 对布尔变量进行“异或”运算,且运算结果仍旧保存在该变量中,则可使用运算符“^=”

value ^= false; // 该行代码等同于 value = value^false;

System.out.println("value="+value);

布尔变量 java_Java开发笔记(十二)布尔变量论道与或非相关推荐

  1. 【Visual C++】游戏开发笔记十二 游戏输入消息处理(一) 键盘消息处理

    相信大家都熟悉<仙剑奇侠传98柔情版>的人机交互方式,用的仅仅是键盘.在那个物质并不充裕的时代,一台配置并不高的电脑,一款名叫<仙剑奇侠传>的游戏,却能承载一代人对梦想的追逐. ...

  2. 【Visual C 】游戏开发笔记十二 游戏输入消息处理 一 键盘消息处理

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  3. Kinect for Windows SDK v2.0 开发笔记 (十二) 高清面部帧(3) 面部模型(2D)

     (转载请注明出处) 使用SDK: Kinect for Windows SDK v2.0 public preview1409 同前面,因为SDK未完成,不附上函数/方法/接口的超链接. 是的, ...

  4. matlab火星漫游车转向控制,OSG开发笔记(二十四):OSG漫游之平移与转向

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 本文章博客地址:https://blog.csdn.net/qq21497936/ ...

  5. 【Visual C++】游戏开发笔记十五 游戏人工智能(一) 运动型游戏AI

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 本系列文章由zhm ...

  6. 【转】【Visual C++】游戏开发笔记十五 游戏人工智能(一) 运动型游戏AI

    原文连接:http://www.cnblogs.com/dyllove98/archive/2012/04/07/2461865.html#commentform 我们常常听闻AI(Artificia ...

  7. 【Visual C++】游戏开发笔记十五 游戏人工智能(一) 运动型游戏AI .

    本系列文章由zhmxy555编写,转载请注明出处.  http://blog.csdn.net/zhmxy555/article/details/7434317 作者:毛星云    邮箱: happy ...

  8. [原]【Visual C++】游戏开发笔记十五 游戏人工智能(一) 运动型游戏AI

    本系列文章由zhmxy555编写,转载请注明出处.  http://blog.csdn.net/zhmxy555/article/details/7434317 作者:毛星云    邮箱: happy ...

  9. 游戏开发笔记十五 游戏人工智能(一) 运动型游戏AI

    我们常常听闻AI(Artificial Intelligence人工智能)这个名词,比如Dota里面的AI地图.写这篇文章的时候,最新版的Dota AI是6.72f,估计过几天6.73的AI也要出来了 ...

最新文章

  1. Android SDK 路径修改
  2. 查看Linux 硬件配置
  3. linux之权限和chmod、chown命令
  4. python opencv 旋转图片
  5. 【BLE】TLSR8258开发记录之10--更改MTU为245
  6. Java:四种取整的方法
  7. Oracle序列小结
  8. win10无法查看计算机名,win10如何查看计算机名字
  9. CPtrArray、CObArray类
  10. html文件的获取,获取html文件Java
  11. 想做C++软件开发工程师,我该如何去学习?
  12. Keil代码自动对齐 VS对齐功能
  13. Focal loss分析
  14. IMDG产品功能扩展
  15. AD19设置元件属性
  16. ro.secure与ro.debuggable
  17. 北京理工大学计算机保研面试,保研之旅2:北京理工大学雷达所面试
  18. Gustafson定律
  19. 6个「会议议程」实例和免费模板
  20. Python输出三角形字符阵列

热门文章

  1. WebAR 开发基本步骤
  2. php 取整,PHP取整的方法有哪些
  3. xftp无法创建文件夹
  4. uniapp拨打拨打电话
  5. Elasticsearch索引检控之Indices Segments API与Indices Shard Stores
  6. 碧蓝航线 服务器维护,手游《碧蓝航线》进行维护 更新大量内容
  7. 大数据计算框架-FLINK精华篇1
  8. hdu 5201 the mokey king (容斥原理)
  9. Matter (CHIP) 从入门到入土 (一)
  10. PHP的传值与引用,php 传值与传引用的区别详解