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,则停止后面的运算. 长路或 ...
随机推荐
- 图解Docker容器和镜像
图解Docker容器和镜像 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别. 当我对Docke ...
- 《深入理解Java虚拟机》(四)虚拟机性能监控与故障处理工具
虚拟机性能监控与故障处理工具 详解 4.1 概述 本文参考的是周志明的 <深入理解Java虚拟机> 第四章 ,为了整理思路,简单记录一下,方便后期查阅. JDK本身提供了很多方便的JVM性 ...
- LeetCode两数之和-Python<一>
下一篇:LeetCode链表相加-Python<二> 题目:https://leetcode-cn.com/problems/two-sum/description/ 给定一个整数数组和一 ...
- js查询数组或者List类型是否包含某个元素
方法一:arr.indexOf(某元素) 实际用法:if(arr.indexOf(某元素) > -1){//则包含该元素} 例: var fruits = ["Banana" ...
- Web应用架构入门之11个基本要素
译者: 读完这篇博客,你就可以回答一个经典的面试题:当你访问Google时,到底发生了什么? 原文:Web Architecture 101 译者:Fundebug 为了保证可读性,本文采用意译而非直 ...
- Internet Download Manager IDM 破解器
IDM 全名Internet Download Manager 是一款国外的多线程下载神器(简称IDM),Internet Download Manager 支持多媒体下载.自动捕获链接.自动识别文 ...
- blfs(systemv版本)学习笔记-制作一个简单的桌面系统
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 大概思路: lfs(系统)+xorg(驱动)+i3-wm(窗口+桌面)+lightdm(显示管理器+登录管理器) 链接: lfs ...
- JavaScript 频繁发射事件处理的优化 --- 函数节流/事件稀释
引子:昨天面试时面试官问了如何实现一个固定导航栏,在我答完后面试官问我可能存在哪些问题,如何优化? 这个问题我答得不太好,但现在回想起来应该有两个问题: 1. 把 fixbar元素 position: ...
- AngularJS ui-router刷新子页面路由
网上有各种刷新子页面路由的方法,但是不知道为什么放到我的页面就不行了,尴尬! 网上的方法有: <a href="#" ui-sref="app.toMenu&quo ...
- JavaScript日期排序
//日期排序 function sortDownDate(a, b) { return Date.parse(a.received) - Date.parse(b.received); } funct ...