快速业务通道

Java编程那些事儿23—逻辑运算符 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24

Java编程那些事儿23—逻辑运算符

时间:2010-02-27 csdn博客 陈跃峰

4.3 逻辑运算符

逻辑运算符是指进行逻辑运算的符号。逻辑运算主要包括与(and)、或(or)和非(not)三种,在程序中主要用来连接多个条件,从而形成更加复杂的条件。

逻辑运算符的运算结果是boolean类型。

参与逻辑运算的数据也必须是boolean类型。

关于逻辑运算符的种类和说明参看表4-3。

表4-3 逻辑运算符

符号 名称 功能说明
&& 逻辑与 两个条件同时为true才为true,否则为false
|| 逻辑或 两个条件有一个为true则为true,否则为false
! 逻辑非 只操作一个数据,对数据取反

逻辑运算符使用示例代码:

boolean b1 = true; boolean b2 = false; boolean b3 = b1 && b2; //则b3的值是false b3 = b1 || b2;    //则b3的值是true b3 = !b1;      //则b3的值是false

在实际程序中,可以根据逻辑的需要使用对应的逻辑运算符号。实际使用示例:

l表示变量n是否属于[0,10)区间

int n = 4; boolean b = (n >=0) && (n < 10);

对于变量n来说,只要n同时满足大于等于零,且小于10,则位于[0,10)区间,由于程序中无法书写0<=n<10这样的条件,则必须通过逻辑运算符进行连接。

l表示变量n不属于[0,10)区间

一种写法是:

int n = 4; boolean b = !((n >= 0) && (n < 10));

这里,对于属于该区间的条件取反,则可以获得不属于该区间的条件。

另一种写法是:

int n = 4; boolean b = (n < 0) || (n >= 10);

这里做了一个简单的变通,如果变量n不属于该区间,则在数学上只需要满足n小于0或者n大于等于10的任何一个条件即可,这样的或者关系在程序中实现时使用逻辑或实现。

在程序设计中,根据逻辑需要,使用对应的逻辑运算符,可以实现相对比较复杂的组合条件,从而实现对应程序的功能。

最后说一下&&和&的区别,其实在进行逻辑与运算时,既可以使用&&也可以使用&,在功能上本身没有区别。两者区别的位置在,对于&来说,如果左侧条件为false,也会计算右侧条件的值,而对于&&来说,如果左侧的条件为false,则不计算右侧的条件,这种现象被称作短路现象。

示例代码:

int n = -1; boolean b1 = (n >= 0) && (n < 10); boolean b2 = (n >= 0) & (n < 10);

则对于第二行代码来说,两个条件都将被计算,而对于第三行代码来说,因为n >= 0这个条件不成立,则n < 10根本不会被执行。当然,两者得到的最终结果是一样的。

对于现在的代码来说,区别不大,但是如果后续的条件是一个方法(方法的概念后续将介绍到),则将影响程序逻辑。

验证&和&&功能的示例代码如下:

public class Test{  public static void main(String[] args){   int n = 10;   boolean b = (n < 8) && ((n = 1) != 0);   int m = 20;   boolean b1 = (m < 8) & ((m = 1) != 0);   System.out.println(n);   System.out.println(m);  } }

文章来源:http://blog.csdn.net/Mailbomb/archive/2008/05/22/2470337.aspx

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号