当前位置: 首页 > news >正文

Java基础(三):运算符

Java的运算符主要包括算数运算符,赋值运算符,比较运算符,逻辑运算符,位运算符与条件运算符。

1.算数运算符

1.1加减乘除

算术运算符主要是做加减乘除取模。加减乘除自然不必多说,我们来介绍一下取模。

1.2取模

取模运算符%是编程基础运算符之一,用来计算两数相除后的余数,奇偶判断、循环轮询、数字截取等功能都依赖它,是开发高频工具。

比如要判断一个数字的奇偶,可以模2,余1为奇,余0为偶。

取模还可以拆分数字,

例:567 567 % 10 = 7

567 / 10 = 56

56 % 10 = 6 56 / 10 = 5

5 % 10 = 5

1.3自增自减符

1.如果单独使用,自增自减没有任何区别。

不论是i++;还是++i;都是对i进行+1。

2.如果混合使用,比如i=1;

j=++i;和j=i++;那么i的自增就会影响j的值。

j=i++;是j先等于i,然后i再++,也就是j=1,i=2。

j=++i;是i先++,然后j再取i的值,也就是i=2,j=2。

2.赋值运算符

写代码时我们总离不开存数据,赋值运算符就是装载数值的工具。

a是变量,a=5就是将5放入变量a里面。

而后面的+=,-=等属于复合赋值运算符,本质上就是简写语法,等价于以下写法。

3.比较运算符

比较运算符只需要记住!是否定的意思,!=也就是不等于。

记住了这个,剩下的比较运算符也就信手拈来啦。。

4.逻辑运算符

逻辑运算符是针对两个布尔类型。

4.1逻辑与&&

逻辑与对于两个布尔类型,可以理解为,前者和后者同时满足,整体才是true。

如果前者就不满足,那么语法上就会直接结束这个语句。不执行后者。

如图所示,a<3已经返回的是false,那么++a将不会执行,也就是说a最终的结果仍然是5。

4.2逻辑或||

逻辑或对于两个布尔类型,可以简单理解为,只需要前者或后者满足,就能返回true。

但同样的,和逻辑与运算符类似,如果前者语句满足条件,返回true,那么系统就会默认整体语句为真,后者直接执行。

如图所示,前者为真的情况下,就算后者为假,++num也依旧执行。

4.3逻辑非

逻辑非的作用主要是取反。

常见用法是判空。。

5.按位运算符

按位运算符主要是针对二进制数值

5.1按位与

按位与针对两数字的二进制形式,对应位全1才为1,有0就是0。清除二进制某一位。

比如3&5

0000 0011-----------最终结果是0000 0001

0000 0101 也就是1

他的使用场景主要有:1.判断奇偶:n&1,结果1是奇数,0 是偶数。

2.清除二进制某一位。

5.2按位或

按位与针对两数字的二进制形式,对应位全0才为0,有1就是1。

比如3|5

0000 0011---------------最终结果是0000 0111

0000 0101 也就是7

5.3按位异或

按位与针对两数字的二进制形式,对应相位相同为0,不同为1。

比如3^5

0000 0011---------------最终结果是0000 0110

0000 0101 也就是6

使用场景:1.判断两数字是否相同,n^n=0。

2.n^0=n。

5.4按位取反

按位与针对单一数字的二进制形式,把每一位1变成0,0变成1。

5.5左移运算符和右移运算符(<<和>>)

左移运算符:按位与针对单一数字的二进制形式,将所有比特位向左移动1位,最右边补0。向左移一位就相当于乘以2。

右移运算符:按位与针对单一数字的二进制形式,将所有比特位向右移动,最左边补符号位。向右移一位,就相当于除以2。

5.6无符号右移>>>

无符号右移,不论正数还是负数,左边统一补0。

因为右边没有符号位,所以没有无符号左移。

6.条件运算符

条件运算符只有⼀个:
表达式1 ?表达式2 :表达式3
表达式1为true,输出表达式2
表达式1为false,输出表达式3

7.运算符的优先级

在一条表达式中,各个运算符可以混合起来进行运算,但是运算符的优先级不同, 比如: * 和 / 的优先级要高于 + 和 - ,有些情况下稍不注意,可能就会造成很大的麻烦。

注意:运算符之间是有优先级的. 具体的规则我们不必记忆. 在可能存在歧义的代码中加上括号即可。。。。
http://www.jsqmd.com/news/1165699/

相关文章:

  • 慕斯杯铝箔外带甜品选什么透明盖?把颜色、盖型和客户反馈一起留档
  • TLS 1.3 与 1.2 握手对比:从4个关键差异看握手失败告警的演变与规避
  • 亲身探访北京卡地亚官方售后服务中心|地址及官方客服热线(2026年7月最新) - 卡地亚服务中心
  • 前端加密实战:避开Crypto-JS与JSEncrypt的常见陷阱
  • Visual Studio 2022 + Windows SDK 22621 安装血泪史
  • Alembic动画管线实战:Unity与UE4中的高效导入与性能优化
  • 卡地亚中国官方售后服务中心|服务热线及门店详细地址权威信息声明(2026年7月更新) - 卡地亚官方售后中心
  • 场外个股期权提前终止怎么理解?到期前退出流程与估值逻辑解析
  • I2C 协议 SMBus 与 PMBus 对比:3 大差异点与嵌入式系统选型指南
  • 解决 NT_STATUS_LOGON_TYPE_NOT_GRANTED
  • 工业级光耦FOD4216与PIC18F25K42的抗干扰设计实践
  • 【大数据毕业设计】基于 Python + 深度学习的短视频多模态内容理解系统的设计与实现 基于 Python + 深度学习的短视频个性化推送系统(源码+文档+远程调试,全bao定制等)
  • AI编程接单从写代码到交付上线-5步跑通完整流程附工具清单
  • pybind11混合编程合规性验证:从内存安全到多线程的实战指南
  • SAP EPIC 银企直连 回单查询:基于建行6WY101接口的3步自定义类开发
  • Claude Fable 5退役前必试:8个Prompt工程实战技巧
  • Fireworks AI快速推理平台集成实践:从原理到Kodus项目部署
  • 【大数据毕业设计】基于 Python 的重庆景区游客评价数据分析系统的设计与实现 基于 Python 的重庆旅游景点客流态势分析系统(源码+文档+远程调试,全bao定制等)
  • UE5载具开发避坑指南:物理调优与性能优化实战
  • STM32H7 MPU配置Cache策略:4种模式详解与GUI显存优化
  • 涨跌同源:极涨与极跌的经典循环
  • 华磊迅拓R19/AIL:AI驱动的智能MES系统架构与应用解析
  • Python 高并发 HTTP 客户端:在 RAG 检索链路中用 httpx 实现连接池优化
  • 亲身到店探访杭州亨得利官方名表服务中心|全新热线和维修地址(2026年7月更新) - 亨得利官方
  • 暗通道去雾算法 3 大参数详解:窗口半径 r、w、eps 对去雾效果与速度的影响实测
  • Photon Server本地部署与Unity客户端连接完整指南
  • TID质量竞争大会分享议题丨腾讯天美J3工作室:AI在游戏测试中的应用,从《三角洲行动》看智能化质量保障新实践
  • Unity3D集成FFmpeg实现低延迟RTSP视频流播放实战方案
  • 百达翡丽官方售后服务中心服务电话及详细网点地址实地考察报告多信源验证(2026年7月更新) - 百达翡丽官方售后中心
  • Qwen3-Coder-30B-A3B本地部署:纯Python实现的Claude Code替代方案