【JavaSE】算术运算符、关系运算符、逻辑运算符、赋值运算符与三元运算符

简介: 文章目录1 运算符概述2 算术运算符2.1 算术运算符的使用2.2 面试题练习3 关系运算符4 逻辑运算符4.1 && 与 & 区别4.2 || 与 | 区别5 赋值运算符6 三元运算符

1 运算符概述

✈️运算符是一种特殊的符号,用以表示数据的运算、赋值与比较等。

运算符分类:


2 算术运算符

🍎 算术运算符一览表

运算符 运算 范例 结果
+ 正号 +9 9
- 负号 a = 9; -a -9
+ 9 + 1 10
- 9 - 1 8
* 9 * 9 81
/ 9 / 3 3
% 取模 11 % 9 2
++ 自增:(前)先运算后取值;(后)先取值后运算 a = 2; b = ++a; c = 2; d = c++; a = 3; b =3; c =3; d = 2
- - 自减:(前)先运算后取值;(后)先取值后运算 a = 2; b = --a; c = 2; d = c–; a = 1; b =1; c =1; d = 2
+ 字符串相加 "Hello " + “world!” “Hello world!”


2.1 算术运算符的使用

⭐️【注意】在 java 中,% 运算满足:

a % b = a - a / b * b

// 结果见注释
System.out.println(10 / 4);  // 2
double a = 10 / 4;  // 2.5
double b = 8 / 4;  // 2.0, 精度提升
System.out.println(10 % 3);  // 1
System.out.println(-10 % 3);  // -1
System.out.println(10 % -3);  // 1

2.2 面试题练习

⭐️question 1:


阅读下列代码,结果是什么?为什么?

int i = 1;

i = i ++;

System.out.println( i );


🅰️【答案】:结果为 1;在执行 i ++ 的时候 按照如下规则使用临时变量:


temp = i;

i = i + 1;

i = temp;

因此,首先在执行 i = i ++ 时,程序先将1存储起来,而后将 i ++ 变为 2,最后又把 1 赋值回 i ,故答案为 1 。


⭐️question 2:


阅读下列代码,结果是什么?为什么?

int i = 1;

i = ++ i;

System.out.println( i );


🅰️【答案】:结果为 2;在执行 ++ i 的时候 按照如下规则使用临时变量:


i = i + 1;

temp = i;

i = temp;

因此,首先在执行 i = ++ i 时,程序先将 i 自增,而后将 i 自增后的值赋值给 i 故答案为 2 。


3 关系运算符

✈️ 关系运算符的结果都是 boolean 类型,结果为 true 或 false。经常用于流程控制中。


🍎 关系运算符一览表

运算符 运算 范例 结果
== 相等于 6 == 5 false
!= 不等于 8 ! = 7 true
< 小于 6 < 5 false
> 大于 6 > 5 true
<= 小于等于 6 <= 5 false
>= 大于等于 6 >= 5 true
instanceof 检查是否是类的对象 “words” instanceof String true

4 逻辑运算符

✈️ 用于连接多个条件(多个关系表达式),最终结果为boolean类型。

🍎 逻辑运算符一览表


✈️【规则】若先不区分逻辑与短路,仅仅从且和或判断,对于 & 同真才真,对 | 同假才假。


⭐️ a&b:& 叫逻辑与,当 a 和 b 同时为true,则结果为true,否则为false;

⭐️ a&&b:&& 叫短路与,当 a 和 b 同时为true,则结果为true,否则为false;

⭐️ a | b:| 叫逻辑或,当 a 和 b 有一个为true,则结果为true,否则为false;

⭐️ a ll b:| 叫短路或,当 a 和 b 有一个为true ,则结果为true,否则为false;

⭐️ !a :叫取反,或者非运算。当a为true,则结果为false,当a为false是,结果为true;

⭐️ a^b:叫逻辑异或,当a和b不同时,则结果为true,否则为false。

4.1 && 与 & 区别

&&短路与:如果第一个条件为false,则第二个条件不会判断,最终结果为false(一假则假,同真才真),效率高;

& 逻辑与:不管第一个条件是否为false,第二个条件都要判断,效率低;

如果第一个条件为true,则两者没有区别。

4.2 || 与 | 区别

|| 短路或:如果第一个条件为true,则第二个条件不会判断(或者执行),最终结果为true(一真则真,同假才假),效率高;

| 逻辑或:无论第一个条件是否为true,都对第二个条件进行判断,效率低;

如果第一个条件为false,则两者没有区别。

5 赋值运算符

✈️ 将某个运算后的值赋给一个变量,比如 a = 1 + 1,即将 1 + 1运算后的值2赋给 a,a = 2。(运算顺序从右向左)

🍎【分类】:


= : a = 1;

+= : a += 1, 等价于 a = a + 1;

-= : a -= 1, 等价于 a = a - 1;

+= : a /= 1, 等价于 a = a / 1;

+= : a * = 1, 等价于 a = a * 1;

【注意】使用复合赋值运算会进行类型转换:

byte a = 10;
a += 3;  // 等价于 a = (byte)(a + 3)

6 三元运算符

✈️ 基本语法:

条件表达式 ? 表达式1 : 表达式2;

😎 运算规则:

条件表达式为 true ,则执行表达式1;反之,执行表达式2。

相关文章
|
6月前
|
C语言
基本的算术运算符
基本的算术运算符
67 1
|
6月前
|
C++
C++程序中的算术运算符
C++程序中的算术运算符
65 2
|
2月前
|
前端开发 JavaScript
前端基础(五)_运算符(算术运算符、赋值运算符、比较运算符、逻辑运算符、三目运算符、运算符优先级和结合性、数据类型的隐式转换)
本文介绍了JavaScript中的算术运算符、赋值运算符、比较运算符、逻辑运算符、三目运算符、运算符优先级和结合性以及数据类型的隐式转换。
41 3
|
4月前
|
搜索推荐 安全 Java
day11:关系运算符
【7月更文挑战第11天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
32 2
|
6月前
|
C++
c++关系运算符
c++关系运算符
42 1
|
6月前
? : 运算符(三元运算符)
? : 运算符(三元运算符)。
55 7
|
6月前
|
编译器 C++
c++算术运算符
c++算术运算符
37 0
|
6月前
|
JavaScript
TypeScript 中常用的运算符:算术运算符、赋值运算符、逻辑运算符、比较运算符和位运算符
TypeScript 中常用的运算符:算术运算符、赋值运算符、逻辑运算符、比较运算符和位运算符
140 1
深入理解算数运算符
深入理解算数运算符
52 0
|
存储 程序员 数据安全/隐私保护
算数运算符
在 Python 中 `*` 运算符还可以用于字符串,计算结果就是字符串重复指定次数的结果。`+`运算符可以让两个字符串相加