Java运算符 逻辑运算符 短路运算符
& 与
两个运算数都为真时结果为真,只要有一个运算数为假结果就为假,否则就为真。
true & true = true
true & false = false
false & true = false
false & false = false
| 或
只要有一个运算数为真,结果就为真,否则就为假。
true | true = true
true | false = true
false | true = true
false | false = false
! 非
原来为真,结果位假。原来为假,结果就为真。
! true = false
! false = true
^ 异或
相同位假,不同为真。
true ^ true = false
true ^ false = true
false ^ true = true
false ^ false = false
下表列出了逻辑运算符的基本运算,假设布尔变量A为真,变量B为假
操作符 | 描述 | 例子 |
---|---|---|
&& | 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 | (A && B)为假。 |
| | | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 | (A | | B)为真。 |
! | 称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 | !(A && B)为真。 |
实例:
public class Test {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println("a && b = " + (a&&b));
System.out.println("a || b = " + (a||b) );
System.out.println("!(a && b) = " + !(a && b));
}
}
运行结果:
a && b = false
a || b = true
!(a && b) = true
注意(1):
&&:如果前边的表达式的结果为false,则后边的表达式不再运算,整个表达式的结果就确定为false。
实例:
public class YuHuo {
public static void main(String[] args) {
int a = 5;
int b = 6;
if(a++ < 4 && ++b == 7)
System.out.println(a + " , " + b); // 不输出
else
System.out.println(a + " , " + b); // 输出结果为 6 ,6
}
}
上面例子说明: && 前面的算式进行了运算,&& 后面的的运算符没有进行运算。
注意(2):
|| :如果前边的表达式的结果为true,则后边的表达式就不再运算,整个表达式的结果就确定为true
实例:
public class Huo {
public static void main(String[] args) {
int a = 5;
int b = 6; if(++a > 5 || ++b == 7)
System.out.println(a + " , " + b); // 输出结果:6 , 6 }
}
上面例子说明: || 前面的算式进行了运算,而 || 后面的算式没有进行运算。
注意(3):
|| 如果在 && 的前边可以把 && 短路掉
实例:
public class Huo {
public static void main(String[] args) {
int a = 5;
int b = 6;
int c = 7; if(++a > 5 || ++b == 7 && ++c == 8 )
System.out.println(a + " , " + b + " , " + c); // 输出结果:6 , 6 , 7
}
}
上面例子说明: || 前面算式进行了运算,|| 后面的算式没有进行运算 。
注意(4):
&& 如果在 || 的前边不能把 || 短路掉
实例:
public class DuanLu {
public static void main(String[] args) {
int a = 5;
int b = 6;
int c = 7; if(++a < 5 && ++b < 6 || ++c > 7)
System.out.println(a + " , " + b + " , " + c); // 输出结果:6 , 6 , 8
}
}
上面的例子说明:++a 进行了运算,++b 被 && 短路,但是没有短路 || ,++c 进行了运算。
Java运算符 逻辑运算符 短路运算符的更多相关文章
- java入门---运算符&逻辑运算符&短路逻辑运算符&赋值运算符&条件运算符&instanceof 运算符
这篇文章接着上次的来,主要看逻辑运算符&短路逻辑运算符&赋值运算符&条件运算符&instanceof 运算符这五种运算符. 首先来看逻辑运算符.下表列出 ...
- Python 位运算符 逻辑运算符 成员运算符
位运算符 运算符 描述 实例 & 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 (a & b) 输出结果12 ,二进制解释:0000 1100 | ...
- c语言基础表达式, 关系运算符, 逻辑运算符, 位运算符, 数据的取值范围, 分支结构(if...else, switch...case)
1.表达式: 表达式的判断是有无结果(值), 最简单的表达式是一个常量或变量, 如:12, a, 3 + 1, a + b, a + 5 都是表达式 2.BOOL(布尔)数据类型: c语言中除了基本数 ...
- 【学习笔记】oracle 比较运算符,逻辑运算符,特殊运算符,判断空值,大小写敏感
比较运算符:> 大于,< 小于 >= 大于等于,<= 小于等于 = 等于,!=,<>,^= 不等于 逻辑运算符运算的优先顺序:NOT > AND > O ...
- Java短路运算符和非短路运算符
在Java中短路运算符指的是"&&"(与) 和"||"(或) ,非短路运算符指的是"&" 和"|" ...
- -1-1 java 基础语法 java关键字 java 注释 常量 语句 运算符 函数 数组定义
Java语言基础组成 关键字 标识符 注释 常量和变量 运算符 语句 函数 数组 关键字 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有字母都为小写 用于定义数据类型的关键字 class ...
- Java 语言基础之运算符
使用运算符之后,肯定有返回结果. 六种运算符: 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 三元运算符 1. 算术运算符 加(+), 减(-), 乘(*), 除(/), 取余(%), 自 ...
- 短路运算符(逻辑与&& 和 逻辑或||)
首先我们来解释一下短路运算符: 短路运算符就是从左到右的运算中前者满足要求,就不再执行后者了: 可以理解为: &&为取假运算,从左到右依次判断,如果遇到一个假值,就返回假值,以后不再执 ...
- js之运算符其它运算符(三元运算符,逗号运算符,void运算符,typeof,delete运算符)
Javascript支持很多其它的运算符,具体如下: 一.条件运算符(?:) 条件运算符是Javascript中唯一的三个操作数的三元运算符,有时会直接称做是“三元运算符”. 基本格式:conditi ...
随机推荐
- 学习写domready
原视频参考http://www.imooc.com/learn/488 --博主个人尝试学习写的-- /** * Created by ty on 2016/1/3. */ //尝试自己写domrea ...
- mysql function动态执行不同sql语句
create procedure cps() begin ) default 'user'; set strSql = concat('select * from ',table_user); pre ...
- JQuery遍历CheckBox踩坑记
$("#checkbox_id").attr("checked"); //获取一个CheckBox的状态(有没有被选中,返回true/false) $(&quo ...
- 《Drools7.0.0.Final规则引擎教程》第4章 4.6 结果条件
结果条件 在Java中,如果有重复的代码我们会考虑进行重构,抽取公共方法或继承父类,以减少相同的代码在多处出现,达到代码的最优管理和不必要的麻烦.Drools同样提供了类似的功能.下面我们以实例来逐步 ...
- Kotlin Reference (一) Basic Syntax
什么是Kotlin Kotlin翻译成中文叫"靠他灵",它是由JetBrains公司发明的一种基于JVM的编程语言,目前Google宣布kotlin为Android开发的官方语言. ...
- OkHttp之BridgeInterceptor简单分析
在< Okhttp源码简单解析(一) >这篇博客简单分析了Okhttp请求的执行流程,通过该篇博客我们知道OkHttp的核心网络请求中内置"拦截器"发挥了重大作用:本篇 ...
- 小程序开发之scroll-view中id不能以数字开头的问题
在实现这样的一个功能时, 调用微信小程序api发现scroll中可以通过id来实现点击菜单栏,屏幕滚动到对应的id位置 但是id不能以数字,汉字类型的 字符串开头(暂发现两种),可能博主比较笨,想 ...
- 【javascript 】组合式继承
开发人员采用的js的继承结构 function inheritPrototype(subType, superType) { var prototype = object(superType.prot ...
- 【angular之起步】安装
人生只有眼前的苟且. 所以为了远方,最近在策划一个大阴谋------做一个自己的网站,杂而全的. 各种胡思乱想了一周,先把页面写完了,没辙,就这个不用费太多脑子. 然后开始重头戏,就卡死了. angu ...
- get、post接口测试-java
public class HttpClient { //get请求方法 public String sendGet(String url, String data) { Date date = new ...