Javase-3.运算符

3.运算符

1.算术运算符

1.基本运算符:加减乘除模(+ - * / %)
int a = 2;
int b = 1;
System.out.println(a + b);//3
System.out.println(a - b);//1
System.out.println(a * b);//2
System.out.println(b / a);//0    int/int结果还是int类型,而且会向下取整
System.out.println(a % b);//0

System.out.println(7.5%2.0);//%不仅可以对整型取模,也可以对double类型取模,但是没有意义,一般都是对整型取模
//结果为1.5
System.out.println(6+0.2);//类型不一致时,范围小的会自动提升为大的,再运算
//结果为6.2

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

该种类型运算符操作完成后,会将操纵的结果赋值给左边的数。
int a = 1;
a += 1;//即a = a + 1;
System.out.println(a);//输出2

a -= 1;//a = a - 1;
System.out.println(a);//输出1

a *= 3;//a = a * 3;
System.out.println(a);//输出3

a /= 3;//a = a / 3;
System.out.println(a);//输出1

a %= 3;//a = a % 3;
System.out.println(a);//输出1

3.自增/自减运算符(++ --)

++ 是给变量的值 +1 -- 是给变量的值 -1
int a = 1;
a++;//后置++,表示给a的值加1,此时a的值为2
System.out.println(a++);//后置++是先使用变量原来值,表达式结束时再对变量+1,因此输出2
System.out.println(a);//输出3

++a;//前置++表示给a的值加1
System.out.println(++a);//前置++是先给变量+1,然后使用变量中的值,因此输出5
System.out.println(--a);//输出4

注意:

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

2.如果混合使用,前置++先+1,然后使用变量+1之后的值,后置++则是先使用变量原来的值,运算结束再对结果+1

3.关系运算符

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

int a = 1;
int b = 2;
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,定义a = 4,那么3<a的结果为true,ture为布尔类型不能与整型比较。

4.逻辑运算符

逻辑运算符主要有三个 : && || ! ,运算结果都是 boolean 类型。
1.逻辑与&&
语法规则:表达式 1 && 表达式 2 ,左右表达式必须是 boolean 类型的结果。
相当于现实生活中的且,比如:如果是学生,并且 带有学生证 才可以享受半票。
两个表达式都为真,结果才是真,只要有一个是假,结果就是假。
int a = 1;
int b = 2;
System.out.println(a == 1 && b == 2);//左为真且右为真则结果为真
System.out.println(a == 1 && b < a);//左为真但右为假则结果为假
System.out.println(a > b && b == 2);//左为假但右为真则结果为假
System.out.println(a > b && b < a);//左为假且右为假则结果为假
2.逻辑或 ||
           表达式1          表达式2        结果
             真              真         真
             真              假         真
             假              真                        真
             假              假         假
int a = 1;
int b = 2;
System.out.println(a == 1 || b == 2);//左为真且右为真则结果为真
System.out.println(a == 1 || b < a);//左为真但右为假则结果为真
System.out.println(a > b || b == 2);//左为假但右为真则结果为真
System.out.println(a > b || b < a);//左为假且右为假则结果为假
3.逻辑非 !
语法规则: ! 表达式
真变假,假变真。
int a = 1;
System.out.println(!(a == 1));//a == 1为true,取个非就是false
System.out.println(!(a != 1));//a != 1为false,取个非就是true
4.短路求值

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

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

我们都知道,计算10/0,程序会报错,但是上面的代码却能正常运行,说明10/0并没有真正被求值.

注意:

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

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

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

5.位运算符

Java 中数据存储的最小单位是字节,而数据操作的最小单位是比特位 . 字节是最小的存储单位,每个字节是由 8 个二 进制比特位组成的,多个字节组合在一起可以表示各种不同的数据。
位运算符主要有四个 : & | ~ ^ ,除 ~ 是一元运算符外,其余都是二元运算符。
位操作表示 按二进制位运算 . 计算机中都是使用二进制来表示数据的 (01 构成的序列 ), 按位运算就是在按照二进制位的每一位依次进行计算.

1. 按位与 &
如果两个二进制位都是 1, 则结果为 1, 否则结果为 0.
int a = 10;
int b = 20;
System.out.println(a & b);//输出0
进行按位运算 , 需要先把 10 20 转成二进制 , 分别为 1010 10100

2.按位或 | 

如果两个二进制位都是0,则结果为0,否则结果为1.

int a = 10;
int b = 20;
System.out.println(a | b);//输出30(0 0 0 1 1 1 1 0)
3.按位取反 ~
如果该位为 0 则转为 1, 如果该位为 1 则转为 0

int a = 0xf;
System.out.printf("%x\n", ~a);
注意 :
1.0x 前缀的数字为 十六进制 数字 . 十六进制可以看成是二进制的简化表示方式 . 一个十六进制数字对应 4 个二进制位.
2.0xf 表示 10 进制的 15, 也就是二进制的 1111
3. printf 能够格式化输出内容 , %x 表示按照十六进制输出 .
4.\n 表示换行符
4.按位异或^
如果两个数字的二进制位相同 , 则结果为 0, 相异则结果为 1.
 
int a = 0x1;
int b = 0x2;
System.out.printf("%x\n", a^b);//输出3
注意:
1.两个相同的数异或结果为0
2.n^0 = n

6.条件运算符

条件运算符只有一个 :
表达式 1 ? 表达式 2 : 表达式 3
表达式 1 的值为 true , 整个表达式的值为 表达式 2 的值 ;
表达式 1 的值为 false , 整个表达式的值为 表达式 3 的值 .
也是 Java 中唯一的一个 三目运算符 , 是条件判断语句的简化写法 .
int a = 10;
int b = 20;
int max = a > b ? a : b;
System.out.println(max);
注意:
1.表达式2和表达式3的结果要同类型,除非能发生类型隐式类型转换
int a = 10;
int b = 20;
double max = a < b ? 1 : 2.0;
System.out.println(max);
2.表达式不能单独存在,其产生的结果必须要被使用。
  • 30
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值