java 逻辑运算符(韩顺平)
短路与和逻辑与
- 基本规则
短路与&& 条件1&&条件2 两个条件都为true,结果为true,否则为false
逻辑与& 条件1&条件2 两个条件都为true,结果为true,否则为false
- 区别
- 短路与&&:如果第一个条件为false,则第二个条件不会判断,最终结果为false,效率高
- &逻辑与:不管第一个条件是否为false,第二个条件都要判断,效率低
- 短路或||:如果第一个条件为true,则第二个条件不会判断,最终结果为true,效率高
- |逻辑或:不管第一个条件是否为true,第二个条件都要判断,效率低
//区别
// int a = 4;
// int b = 9;
// if (a < 1 && ++b < 50) {
// System.out.println("ok3");
// }
// System.out.println("a="+ a +"b=" + b);
//
// if (a < 1 & ++b < 50) {
// System.out.println("ok4");
// }
// System.out.println("a="+ a +"b=" + b);
//对于短路与第一个条件为false,后面的条件不在执行和判断
//对于逻辑与第一个条件为false,后面的条件会继续执行和判断
//(1)||短路或:如果第一个条件为true
//则第二个条件不会判断,最终结果为true,效率高
//(2)|逻辑或:不管第一个条件是否为true
//第二个条件都要执行
// int a = 4;
// int b = 9;
// if( a > 1 || ++b > 4) {
// System.out.println("ok4");
// }
// System.out.println("a=" + a + "b=" + b);
//
// if( a > 1 | ++b > 4) {
// System.out.println("ok5");
// }
// System.out.println("a=" + a + "b=" + b);
- 异或^
a^b 当结果a和b不同时,结果为true,否则为false
补充应用:
- 将两个变量的值进行交换
int a =1;
int b = 2;
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println(a);//2
System.out.println(b);//1
2.寻找出现一次的数(时间复杂度为O(n))
int[] a = {2, 3, 3, 4, 4, 6, 7, 7};
int l = a.length;
int eor=0;
int i;
for(i=0;i<l;i++)
{eor^=a[i];
}
int rightone=eor&(~eor+1);//提取最右侧的1int onlyone=0;//eor'
int cur;
for(i=0;i<l;i++){cur=a[i];if((cur&rightone)==0){onlyone^=cur;}
}
System.out.println(onlyone);
System.out.println(onlyone^eor);
若文章内容错误,希望大家帮忙指正
java 逻辑运算符(韩顺平)相关推荐
- 【零基础 快速学Java】韩顺平 p104-147 流程控制:顺序、分支、循环、跳转 控制语句 (if、for、while、dowhile、break、continue、return)
课程 p104-147 流程控制介绍 在程序种,程序运行的流程控制决定程序是如何执行的. 主要有三大流程控制语句: 顺序控制 分支控制 循环控制 顺序 简单理解就是从头到尾. 分支控制if-else ...
- 韩顺平 2021零基础学Java 学习笔记
韩顺平 2021零基础学Java 学习笔记(1)(自用)_丨shallow丨的博客-CSDN博客_韩顺平java笔记 韩顺平 2021零基础学Java 学习笔记(2)(自用)_丨shallow丨的博客 ...
- 非零基础自学Java (老师:韩顺平) 第10章 面向对象编程(高级部分) 10.6 抽象类
非零基础自学Java (老师:韩顺平) ✈[[零基础 快速学Java]韩顺平 零基础30天学会Java] 第10章 面向对象编程(高级部分) 文章目录 非零基础自学Java (老师:韩顺平) 第10章 ...
- Java基础易忘重点内容笔记【附B站韩顺平老师课程链接】
B站课程链接:https://www.bilibili.com/video/BV1fh411y7R8?spm_id_from=333.999.0.0 1. 文档注释 用于对Java方法的注释,可据此生 ...
- Java学习(java基础)-韩顺平老师
一.简单介绍 1.jdk.jre 2.Java代码规范 a.类.方法的注释,要以javadoc的方式来写 /** *@author:楠小弟 *@version:1.0 */ public class ...
- 韩顺平循序渐进学java 第21.22.23.24讲 集合
21.1 引出问题 一个问题? 前面我们学习了数组,充分体会到数组的优越性,就是可以存储同一类型的数据,但是我们假设有这样的需求,大家看看如何解决? 请做一个公司职员薪水管理系统,要求完成如下功能: ...
- 韩顺平 2021零基础学Java 学习笔记(2)(自用)
目录 第 10 章 面向对象编程(高级部分) 第 11 章 枚举和注解 第 12 章 异常-Exception 第 13 章 常用类 第 10 章 面向对象编程(高级部分) 10.1 类变量和类方法 ...
- 适合有编程基础的人看的《韩顺平零基础30天学java》笔记(P104~P129)
写在最前边: 研究生一枚,为后端实习和未来工作打基础.无意间发现韩顺平老师的课程,细心细致,讲课和吴恩达老师一样,都是保姆式讲解,各种基础知识都会补充,爱了. 韩顺平老师课程地址:https://ww ...
- JAVA IO流(韩顺平)
目录 一.文件 1.1 什么是文件 1.2 文件流 二.常用的文件操作 2.1 创建文件对象相关构造器和方法 2.1.1 代码实现 2.2 获取文件的相关信息 2.2.1 代码实现 2.2.2 相对路 ...
- 网沙(爱玩啥)韩顺平.循序渐进学.java.从入门到精通系列视频分享
网沙(爱玩啥)韩顺平.循序渐进学.java.从入门到精通系列视频分享 韩顺平.循序渐进学.java.从入门到精通.第0讲-开山篇 韩顺平.循序渐进学.java.从入门到精通.第1讲-内容介绍.项 ...
最新文章
- 零基础学python这本书怎么样-看了这本基础教程的书籍你还担心你的python学不好吗?...
- Linux与Windows比较出的20个优势
- Tomcat之Windows下安装
- CentOS 7.2安装Jenkins自动构建Git项目
- Python笔记-获取某百科页面所有URL(提取某百科所有URL)
- 002-一般处理程序(HttpHandler)
- 京东商品价格查询易语言代码
- ApolloStudio高手之路(12):机器视觉图像匹配定位与激光打标领域深度结合(基于海康威视VisionMaster九点标定、模板快速匹配定位、标定转换以及金橙子EzCad2二次开发)
- 魔兽8.0最新服务器人口普查,魔兽世界8.2最新人口普查 2019各服务器人口普查信息汇总...
- 【读书笔记】好好思考-成甲
- JAVA 接口(interface)
- ubuntu petalinux 2018 安装操作说明
- SpringBoot集成网易企业邮箱,亲测可用
- Ubuntu系列:Ubuntu安装deepin wine QQ, 微信...
- XGBoost的参数介绍及调参
- 如何配置数据库密码加密访问数据库
- 二年级上册计算题_2015年二年级上册数学期末考试卷
- 好厉害!30 行代码实现蚂蚁森林自动收能量
- android MMS接受因联网被拒失败分析
- 李国杰:保持青年人的朝气和勇气