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,则停止后面的运算. 长路或 ...
随机推荐
- SpringBoot入门之基于XML的Mybatis
上一博客介绍了下SpringBoot基于注解引入Mybatis,今天介绍基于XML引入Mybatis.还是在上一篇demo的基础上进行修改. 一.Maven引入 这个与上一篇的一样,需要引入mybat ...
- js------科学计数法转换为正常小数
// toD.js文件export default (val) => { const e = String(val) let rex = /^([0-9])\.?([0-9]*)e-([0-9] ...
- Apollo 3 定时/长轮询拉取配置的设计
前言 如上图所示,Apollo portal 更新配置后,进行轮询的客户端获取更新通知,然后再调用接口获取最新配置.不仅仅只有轮询,还有定时更新(默认 5 分钟一次).目的就是让客户端能够稳定的获取到 ...
- 数据库部分(MySql)_1
SQL规范 以 “ ; ” 结尾:关键字之间要有空格(可以由多个空格):SQL语句中可以一个或多个换行:关键字不区分大小写. 数据库相关SQL 查询所有数库库: show databases; 创建数 ...
- c# 封装Dapper操作类
using Dapper; using DapperExtensions; using System.Collections.Generic; using System.Configuration; ...
- lfs(systemd版本)学习笔记-第4页
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! lfs(systemd版本)学习笔记-第3页 的地址:https://www.cnblogs.com/renren-study- ...
- 通过PHP来 获取文件内容 并且分割字符串 呈现在表格中
<?php $aaa = file_get_contents("names.txt"); $data = explode("\n", $aaa); for ...
- node 跨域问题
node跨域有很多方法 1.引入 中间件cors 我觉的最好的方法 var express=require('express'); var cors=require('cors'); var app= ...
- 一条sql语句引发的遐想:select t.*, t.rowid from STUDENT t
在学习oracle 过程当中,当在看tables时,比如STUDENT,右击——查看——查询,会自动有这样的一条查询语句: select t.*, t.rowid from STUDENT_TJB t ...
- 【Java入门提高篇】Day27 Java容器类详解(九)LinkedList详解
这次介绍一下List接口的另一个践行者——LinkedList,这是一位集诸多技能于一身的List接口践行者,可谓十八般武艺,样样精通,栈.队列.双端队列.链表.双向链表都可以用它来模拟,话不多说,赶 ...