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

JavaSE初学---运算符

JavaSE初学---运算符

  • 什么是运算符
    • 一、算术运算符
      • 1. 基本四则运算符:加减乘除模(+ - * / %)
      • 2. 增量运算符 += -= *= %=
      • 3.⾃增/⾃减运算符 ++ --
    • 二、关系运算符
    • 三、逻辑运算符
      • 1.&&
      • 2.||
      • 3.!
      • 4.短路求值
    • 四、位运算符
      • 1. 按位与 &
      • 2.按位或 |
      • 3.按位取反 ~
      • 4.按位异或 ^
    • 五、移位运算
      • 1.左移 <<
      • 2.右移 >>
      • 3.⽆符号右移 >>>
    • 六、条件运算符

什么是运算符

用来对变量、常量、数值进行运算、比较、逻辑判断的特殊符号。

一、算术运算符

1. 基本四则运算符:加减乘除模(+ - * / %)

inta=200;intb=4;//a+b.sout快速生成System.out.println(a + b);//.前面的内容就是System.out.println();中括号的内容System.out.println(a+b);System.out.println(a-b);System.out.println(a*b);System.out.println(a/b);System.out.println(a%b);//取余

注意:
(1)都是⼆元运算符,使⽤时必须要有左右两个操作数
(2)int / int 结果还是int类型,⽽且会向下取整

inta=3;intb=2;// 在数学中应该是1.5 但是在Java中输出结果为1 会向下取整,即⼩数点之后全部舍弃掉了System.out.println(a/b);// 要得到数学中的结果,可以使⽤如下⽅式doubled=a*1.0/b;System.out.println(d);

(3)做除法和取模时,右操作数,即除数不能为0
(4)Java取余只看被除数正负

System.out.println(10%3);//1System.out.println(10%-3);//1System.out.println(-10%3);//-1System.out.println(-10%-3);//-1

2. 增量运算符 += -= *= %=

inta=1;System.out.println(a+=2);//相当于 a = a + 2,输出3System.out.println(a-=1);//相当于 a = a - 1,输出2System.out.println(a*=3);//相当于 a = a * 3,输出6System.out.println(a/=3);//相当于 a = a / 3,输出2System.out.println(a%=3);//相当于 a = a % 2,输出2

注意:
增量运算符在计算的时候,可以不进⾏强制类型转换(数据范围⼤的到数据范围⼩的)

doublea=10.4;intb=10;b+=a;//不会报错b=b+a;//此时会编译报错,等号右边被提升为了double类型

3.⾃增/⾃减运算符 ++ –

++是给变量的值+1,–是给变量的值-1

inta=1;intb=5;System.out.println(a++);//后置++表⽰给a的值加1,此时a的值为2System.out.println(++b);//前置++是先给变量+1,然后使⽤变量中的值,因此输出6//--与++一样

二、关系运算符

关系运算符主要有六个: == != < > <= >= ,其计算结果是 true 或者 false

inta=10;intb=20;// Java中 = 表⽰赋值,要与数学中的含义区分在Java中 == 表⽰相等System.out.println(a==b);// falseSystem.out.println(a!=b);// trueSystem.out.println(a<b);// trueSystem.out.println(a>b);// falseSystem.out.println(a<=b);// trueSystem.out.println(a>=b);// false

三、逻辑运算符

逻辑运算符主要有三个: && || ! ,运算结果都是 boolean类型

1.&&

(1)语法规则:表达式1 && 表达式2,左右表达式必须是boolean类型的结果
(2)相当于“且”
(3)两个表达式都为真,结果才是真,只要有⼀个是假,结果就是假

inta=1;intb=2;System.out.println(a==1&&b==2);// 左为真 且 右为真 则结果为真System.out.println(a==1&&b>100);// 左为真 但 右为假 则结果为假System.out.println(a>100&&b==2);// 左为假 但 右为真 则结果为假System.out.println(a>100&&b>100);// 左为假 且 右为假 则结果为假

2.||

(1)语法规则:表达式1 || 表达式2,左右表达式必须是boolean类型的结果。
(2)相当于或

inta=1;intb=2;System.out.println(a==1||b==2);// 左为真 且 右为真 则结果为真System.out.println(a==1||b>100);// 左为真 但 右为假 则结果也为真System.out.println(a>100||b==2);// 左为假 但 右为真 则结果也为真System.out.println(a>100||b>100);// 左为假 且 右为假 则结果为假

3.!

(1)语法规则:! 表达式
(2)相当于不是

inta=1;System.out.println(!(a==1));//a是等于1,加上!结果为假

4.短路求值

System.out.println(10>20&&10/0==0);// 打印 falseSystem.out.println(10<20||10/0==0);// 打印 true

在一、1.的注意(3)中就提到过做除法和取模时,右操作数,即除数不能为0
但是上⾯的代码却能正常运⾏, 说明 10 / 0 并没有真正被求值
注意:
(1)对于 && , 如果左侧表达式值为 false, 则表达式结果⼀定是 false, ⽆需计算右侧表达式
(2)对于 ||, 如果左侧表达式值为 true, 则表达式结果⼀定是 true, ⽆需计算右侧表达式.
(3)& 和 | 如果表达式结果为 boolean 时, 也表⽰逻辑运算. 但与 && || 相⽐, 它们不⽀持短路求值.

System.out.println(10>20&10/0==0);//程序抛出异常System.out.println(10<20|10/0==0);// 程序抛出异常

四、位运算符

位运算符主要有四个: & | ~ ^ ,除 ~ 是⼀元运算符外,其余都是⼆元运算符
(位操作表示按⼆进制位运算,计算机中都是使用⼆进制来表示数据的(01构成的序列), 按位运算就是在按照⼆进制位的每⼀位依次进行计算)

1. 按位与 &

如果两个⼆进制位都是 1, 则结果为 1, 否则结果为 0
(只要对应位上有0,则该位下来的结果就为0)

inta=10;intb=20;//进⾏按位运算, 需要先把 10 和 20 转成⼆进制, 分别为 1010 和 10100System.out.println(a&b);//0

2.按位或 |

如果两个⼆进制位都是 0, 则结果为 0, 否则结果为 1
(只要对应位上有1,则该位下来的结果就为1)

inta=10;intb=20;System.out.println(a|b);//30

3.按位取反 ~

如果该位为 0 则转为 1, 如果该位为 1 则转为 0
(按位取反公式:~x = -x - 1)

intc=15;System.out.println(~c);//-16

Java 中 int 是 32 位有符号整数
15 的完整 32 位二进制:
00000000 00000000 00000000 00001111
全部取反后:
11111111 11111111 11111111 11110000
补码减 1:11111111 … 11101111
按位取反得到原码:00000000 … 00010000 = 16
加上负号:-16

4.按位异或 ^

如果两个数字的⼆进制位相同, 则结果为 0, 相异则结果为 1

inta=10;intb=20;System.out.println(a^b);//30

五、移位运算

移位运算符有三个: << >> >>> ,都是⼆元运算符,且都是按照⼆进制⽐特位来运算的

1.左移 <<

最左侧位不要了, 最右侧补 0

inta=10;System.out.println(a<<1);//20

2.右移 >>

最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)

inta=10;System.out.println(a>>1);//5

inta=-10;System.out.println(a>>1);//-5

3.⽆符号右移 >>>

最右侧位不要了, 最左侧补 0

inta=10;System.out.println(a>>>1);//5

六、条件运算符

表达式1 ? 表达式2 : 表达式3
(当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值
当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值)

inta=10;intb=20;intmax=a>b?a:b;//20

注意:
(1) 表达式2和表达式3的结果要是同类型的,除⾮能发⽣类型隐式类型转换
(2)表达式不能单独存在,其产⽣的结果必须要被使⽤

http://www.jsqmd.com/news/1190040/

相关文章:

  • 【P3397地毯】二维地毯覆盖计数
  • 合肥瑶海区公司变更哪家专业?2026靠谱机构推荐 - 小柏云
  • ComfyUI面部修复不翻车:零代码调参法+权重衰减公式(附17组实测Lora融合参数)
  • 国内清水砼厂家实力排行:从性能到场景适配 - 互联网科技品牌测评
  • 低采样率ISAR成像的稀疏重建方法及其实时实现
  • 2026年7月最新扬州积家官方售后热线及客户服务网点地址 - 积家官方售后服务中心
  • 多开手游用什么模拟器最好?MuMu 模拟器 6.0 多开硬核测评
  • 6华亭黄金回收避坑攻略!本地实测3家靠谱门店,高位变现不亏一分钱 - 福金阁黄金回收
  • C++坐标系统实现指南:从原理到工程实践
  • 为什么你的Figma AI转代码项目上线即崩溃:基于Chrome DevTools Performance Timeline的11ms级渲染阻塞根因分析
  • 阿克塞金价持续走高,卖金总被压价?本地三家正规回收门店全维度实测避坑 - 福金阁黄金回收
  • 2026 年新发布:宝兴热门的凉亭防腐木企业怎么联系,明明花了大价钱,为何你家院子三个月就烂成一堆柴火? - 行业鉴选官
  • U++ USTRUCT结构体基本用法
  • 上海微水泥厂家排行:5家合规品牌的实测参数对比 - 互联网科技品牌测评
  • 上海5家主流地坪企业实测排行 聚焦性能与服务 - 互联网科技品牌测评
  • 讲真的2026年乌鲁木齐废旧金属回收 这5家实力回收站值得推荐 - 本地品牌推荐
  • Linux性能分析:火焰图与perf工具实战指南
  • C++构建高性能HTTPS RESTful JSON服务器:从原理到工程实践
  • 术后复查、康复复诊没人陪?北京头部陪诊守嘉陪诊,术后专属陪护服务详解 - 深鉴新闻
  • 计算机考试-对称矩阵—东方仙盟
  • AI地编实战:从零实现画面元素AI直出完整流程与核心技术解析
  • 亲身探访天津泰格豪雅官方售后服务中心|服务热线及全部官方地址(2026年7月最新) - 亨得利官方服务中心
  • test123
  • 微信小程序开发进入AI决胜期:Cursor已成Tencent MiniProgram认证推荐工具(仅限前500名领取《Cursor小程序开发白皮书V2.3》)
  • 2026 年更新:桃城热门的膜结构电动推拉棚销售厂家深度剖析,暴雨夜车间积水?这玩意儿一秒收回,老板直呼专业 - 企业信息推荐【官方】
  • AMAT 0190-27952-04 终端服务器
  • 不卷渗透也能高薪!2026三条差异化网安黑马赛道,新手直接抄作业
  • 043-如何设定有效的练习目标
  • C#中如何设置软件开机自启动
  • 泾川卖黄金别踩坑!三大本土合规回收门店全实测,报价透明无隐形扣费 - 福金阁黄金回收