java中的逻辑运算符,以及&与&&的区别,|与||的区别
2024-09-25 18:29:34
原创,转载请留言联系
逻辑运算符:
& | 与 | false&true=false;true&true=true;false&false=false | 必须两个都是true才返回true |
| | 或 | false&true=true;true&true=true;false&false=false | 有一个是true就返回true |
^ | 异或 | false^true=true;true&true=false;false^false=false | 两个必须不一样才返回true |
! | 非 | !true=false;!false=true | 取反,本来是true的返回false,本来是false的返回true |
&与&&的区别
先来看一个例子:
public class OperatorDemo {
public static void main(String[] args){
int a = 1;
int b = 2;
int c = 3;
System.out.println((a>b)&(b>c));
System.out.println((a>b)&&(b>c));
}
} # 输出结果:
false
false
看似两个用法都是一样。实际还是有所区别。
public class OperatorDemo {
public static void main(String[] args){
int a = 10;
int b = 20;
int c = 30;
System.out.println((++a>b)&(++b>c));
System.out.println(a);
System.out.println(b);
}
} # 输出:
false
11
21
但是:
public class OperatorDemo {
public static void main(String[] args){
int a = 10;
int b = 20;
int c = 30;
System.out.println((++a>b)&&(++b>c));
System.out.println(a);
System.out.println(b);
}
} # 输出结果:
false
11
20
为什么结果不一样了呢?
原因是这样的,我们都只带,&和&&都是必须双方都为true时才会返回true。
用&&时,如果第一个是false,那么就不会执行第二个条件了,直接返回false了。
而&会把两边都执行完。
所以,效率上肯定是&&比较高。
|与||的区别
|与||其实和&与&&的原理一样。
|和||都是有一方为ture是就返回true。
用||时,如果第一个是true,那么就不会执行第二个条件了,直接返回true了。
而|会把两边都执行完。
所以,效率上肯定是||比较高。
最新文章
- c/c++字符串定义及使用的对比
- Object-C内存管理-对象引用计数的特例
- Python实现抓取页面上链接
- [C++基础]一个比较常用的配置文件/初始化文件读取程序
- 二模08day2解题报告
- HDU-1438 钥匙计数之一
- Java注解处理器使用详解
- 复制构造函数2——深入理解
- Android程序版本更新--通知栏更新下载安装(转)
- WCF扩展之实现ZeroMQ绑定和protocolBuffer消息编码(二)实现IRequestChannel(2016-03-15 12:35)
- ajax提交表单 验证
- Nginx 限流
- Elasticsearch搜索之most_fields分析
- 已操作文件的方式,新建一个用户alex
- 基数排序的理解和实现(Java)
- android开发 写一个自定义形状的按键
- SQL面试题之行转列
- weblogic服务目录迁移记录
- [转]jQuery选择器 (详解)
- Android界面设计适配不同屏幕的尺寸和密度解读
热门文章
- UVA.11384 Help is needed for Dexter (思维题)
- AOJ.综合训练.2016-11-24
- 关于Javac编译器的那点事(一)
- sublime Text 块编辑方法
- selenium - 获取断言信息
- SDUT 3930 线段树
- hbase监控简单实用脚本
- 调戏OpenShift:一个免费能干的云平台(已失效)
- NightMare2(SCU4527+dijkstra+二分)
- hdu 1162 Eddy's picture(最小生成树算法)