Java逻辑运算
逻辑运算是在关系运算基础之上的运算,能处理更加复杂的问题
逻辑运算的结果是 true 或 false
一、逻辑运算的种类:
在java的逻辑运算符中,有这么四类&&(短路与)、&(与)、||(短路或)、|(非短路或)
使用规则:
(1)& 可以用作逻辑与的运算符,表示逻辑与(and)
a、当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false
b、无论第一个判断条件是否成立,逻辑运算符前后两个条件都会进行判断
(2)&& 可以用作逻辑与的运算符,表示逻辑与(and)
a、当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false
b、第一个条件不成立,后面的条件均不进行判断,返回false
(3)| 可以作逻辑或运算符,表示逻辑或(or)
a、当运算符有一边为true时,整个运算结果为true
b、无论第一个判断条件是否成立,逻辑运算符前后两个条件都会进行判断
(4)|| 可以作逻辑或运算符,表示逻辑或(or)
a、当运算符有一边为true时,整个运算结果为true
b、第一个条件成立,后面的条件均不进行判断,返回true
示例:
String s = null;
1. if((s!=null)&(s.length()>0)){}
2. if((s!=null)&&(s.length()>0)){}
3. if((s==null)|(s.length()==0)){}
4. if((s==null)||(s.length()==0)){}
上述案例在java运行情况中,1,3均抛出NullPointerException异常。
二、逻辑运算优先级:
三种逻辑运算的优先级:
非运算最高,与运算次之,或运算最低
如:(注意:关系运算的优先级要高于所有的逻辑运算)
示例:
5 >=7 || 4 < 5 && !false
步骤1:计算关系运算:5 >=7,结果:false;
步骤2:计算关系运算:4 < 5,结果:true;
步骤3:计算逻辑非运算:!false,结果:true;
此时: false || true && true
步骤4:计算逻辑与运算:true && true,结果:true;
步骤5:计算逻辑或运算:false || true,结果:true;
Java逻辑运算的更多相关文章
- JAVA算术运算符、关系运算符和位运算符
算术运算符 1.java的算数运算符包括+(加).-(减).*(乘)./(除).%(取余),在运算过程中出现的隐式转换原则和C语言一样:2. 高位数据向低位数据转化要使用强制转化: 关系运算符 1.j ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- java布尔值进行and和or逻辑运算原理
先看看如下代码: public class Test { public static void test() { boolean a = true; boolean b = false; if (a ...
- Java开发笔记(十五)短路逻辑运算的优势
前面提到逻辑运算只能操作布尔变量,这其实是不严谨的,因为经过Java编程实现,会发现“&”.“|”.“^”这几个逻辑符号竟然可以对数字进行运算.譬如下面的代码就直接对数字分别开展了“与”.“或 ...
- Java运算符使用总结(重点:自增自减、位运算和逻辑运算)
Java运算符共包括这几种:算术运算符.比较运算符.位运算符.逻辑运算符.赋值运算符和其他运算符.(该图来自网络) 简单的运算符,就不过多介绍使用了,可自行测试.关于赋值运算,可以结合算术运算和位运算 ...
- 《深入Java虚拟机学习笔记》- 第13章 逻辑运算
<深入Java虚拟机学习笔记>- 第13章 浮点运算
- 位运算,算术、逻辑运算详解-java篇
/** * 功能: * 位运算符,原码.反码.补码规则: * 1.二进制的最高位是符号位:0表示正数,1表示负数 * 2.正数的原码.反码.补码都一样 * 3.负数的反码=它的原码符号位不变,其他位取 ...
- java代码执行字符串中的逻辑运算方法
转载:https://www.jb51.net/article/143967.htm 方法一:Java调用js方法执行: /** * * @author: Longjun * @Description ...
- Java语言基础---逻辑运算(长路短路运算)
长路短路运算的区别 长路与运算&:是指在两边都是整数时,是逐位与运算,在两边是关系运算时,是逻辑运算. 短路与运算&&:是指从左至右,遇到false,则停止后面的运算. 长路或 ...
随机推荐
- es6中的部分新特性
1.es6中变量声明可以使用let声明变量,用const声明常量.例: test:function(){ { var num=10; let num1=11; const num2=12; } con ...
- ORM框架EF
应用程序和数据库采用Tcp协议通讯 ORM框架有: NHibernate ,Dapper ,Mybatis 底层是 ADO.Net 好处: 1.面向对象 2.没有sql减少学习成本,快速开发 3.编译 ...
- 新建 .NET Core 控制台项目
1. 安装 .NET Core SDK 1.0 参考微软官方网站 https://www.microsoft.com/net/download/windows 2. 打开命令提示符:输入以下代码验证S ...
- 使用css的类名交集复合选择器 《转》
复合选择器就是两个或多个基本选择器,通过不同方式连接而成的选择器,主要包括“交集”选择器.“并集”选择器.“后代”选择器. 交集选择器 “交集”复合选择器是由两个选择器直接连接构成,其结果是选中二者各 ...
- ios --xib自定义,解决在导航栏不透明的情况下,自定义xib view高度被压缩64的问题
在使用xib自定义view的时候,个人习惯性的直接使用xib中的约束,所以自然而然的要打开Autolayout.以前在使用的时候没有发现什么问题,最近项目中使用的时候突然发现在导航栏透明的情况下,出现 ...
- Oracle索引失效原因及解决方法
一.Oracle索引失效的原因 1使用否定关键字 !=, <> ,not in,not exist select * fromdrama where id <> 1,Mysql ...
- HotSpot 虚拟机对象揭秘【转载】
对象的创建 Java 对象的创建过程, ①类加载检查: 虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是否已被加载过.解 ...
- JS的分号可以省掉吗?
摘要: JavaScript语言从设计之初就是考虑带分号的,使用不带分号的编码规则就要小心点啦. 背景 最近在项目中开始使用新的编码规范,一开始ESLint报一大堆错误,改得我想砸键盘,花了好些时间才 ...
- spring 使用外部属性文件
一.PropertyPlaceholderConfigurer spring提供的PropertyPlaceholderConfigurer实现类能够使Bean在配置时引用外部属性文件. Proper ...
- android recovery代码修改之原生建议
我们都知道recovery升级的时候,是根据升级脚本updater-script里面的函数,去一步步执行的,比如mount,format等相关的操作,有时候我们需要增加一些自己特殊的更新的接口,这时候 ...