JAVASE---运算符

1.算术运算符

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

java 复制代码
int a = 20;
int b = 10;
System.out.println(a + b); // 30
System.out.println(a - b); // 10
System.out.println(a * b); // 200
System.out.println(a / b); // 2
System.out.println(a % b); // 0 --->模运算相当于数学中除法的余数

注意:

都是二元运算符,使用时必须要有左右两个操作数

int / int 结果还是int类型,而且会向下取整,这里和c语言相同。

%运算在c语言中不能用于浮点型,而在Java里,%也可以用在浮点型中。例:11.5%2=1.5,不过没有太多意义,一般还是用于整形。

当操作数类型不一致的时候,会向类型大的提升。

java 复制代码
System.out.println(1+0.2); // +的左侧是int,右侧是double,在加之前int被提升为double
// 故:输出1.2

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

这里和c语言没有什么区别

自增/自减运算符 ++ --

注意:

如果单独使用,【前置++】和【后置++】没有任何区别

如果混合使用,【前置++】先+1,然后使用变量+1之后的值,【后置++】先使用变量原来的值,表达式结束时给变量+1

只有变量才能使用自增/自减运算符,常量不能使用,因为常量不允许被修改

2.关系运算符

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

java 复制代码
nt a = 10;
int b = 20;
// 注意:在Java中 = 表示赋值,要与数学中的含义区分
// 在Java中 == 表示相等
System.out.println(a == b); // false
System.out.println(a != b); // true
System.out.println(a < b); // true
System.out.println(a > b); // false
System.out.println(a <= b); // true
System.out.println(a >= b); // false

注意:当需要多次判断时,不能连着写,比如:3 < a < 5,Java程序与数学中是有区别的

3.逻辑运算符(重点)

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

1. 逻辑与 &&

语法规则:表达式1 && 表达式2,左右表达式必须是boolean类型的结果。两个表达式都为真,结果才是真,只要有一个是假,结果就是假。

java 复制代码
int a = 1;
int b = 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 || 表达式2,左右表达式必须是boolean类型的结果。两个表达式,至少有一个为true即为true。

java 复制代码
int a = 1;
int b = 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.逻辑非 !

语法规则:! 表达式,真假互换。

短路求值

&& 和 || 遵守短路求值的规则

对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式。

对于 ||, 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式。

& 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算. 但与 && || 相比, 它们不支持短路求值。

4. 位运算符

Java 中数据存储的最小单位是字节,而数据操作的最小单位是比特位. 字节是最小的存储单位,每个字节是由8个二进制比特位组成的,多个字节组合在一起可以表示各种不同的数据。

位运算符主要有四个: & | ~ ^ ,除 ~ 是一元运算符外,其余都是二元运算符。

  1. 按位与 &: 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0。

2.按位或 |: 如果两个二进制位都是 0, 则结果为 0, 否则结果为 1。

3.按位取反 ~: 如果该位为 0 则转为 1, 如果该位为 1 则转为 0。(包括符号位)

4.按位异或 ^: 如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1。

5.移位运算(了解)

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

<< 二进制位向左移动,右边的用0补齐。

>> 二进制位向右移动,左边的与前面符号位相同。(正数补0, 负数补1)

>>> 二进制位向右移动,左边的用0补齐。(无符号右移)

6. 条件运算符

条件运算符只有一个:

表达式1 ? 表达式2 : 表达式3

当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值;

当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值.

也是 Java 中唯一的一个 三目运算符, 是条件判断语句的简化写法.

java 复制代码
// 求两个整数的最大值
int a = 10;
int b = 20;
int max = a > b ? a : b;
相关推荐
迷失蒲公英38 分钟前
XML与Go结构互转实现(序列化及反序列化)
xml·开发语言·golang
测试盐1 小时前
c++编译过程初识
开发语言·c++
pianmian11 小时前
贪心算法.
算法·贪心算法
赖赖赖先生1 小时前
fastadmin 框架 生成qr code 二维码图片,PHP 7.4版本
开发语言·php
字节流动2 小时前
Android Java 版本的 MSAA OpenGL ES 多重采样
android·java·opengles
玉红7772 小时前
R语言的数据类型
开发语言·后端·golang
夜斗(dou)2 小时前
node.js文件压缩包解析,反馈解析进度,解析后的文件字节正常
开发语言·javascript·node.js
觅远2 小时前
python+PyMuPDF库:(一)创建pdf文件及内容读取和写入
开发语言·python·pdf
chenziang12 小时前
leetcode hot 100 二叉搜索
数据结构·算法·leetcode
呜呼~225143 小时前
前后端数据交互
java·vue.js·spring boot·前端框架·intellij-idea·交互·css3