Java运算符

一、算术运算符

1.算术运算符及说明:

符号说明
+
-
*
/
%取余

2.字符的“+”操作:

char类型参与算术运算,使用的是计算机底层对应的十进制数值。//整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。

int a = 10;

int b = 3;

double c = 3;

System.out.println(a / b); // 输出结果3

System.out.println(a / c); // 输出结果3.3333333333333335

System.out.println(a % b); // 输出结果1
  • “a”:97。a-z是连续的依次递加。
  • “A”:65。A-Z是连续的依次递加。
  • “0”:48。0-9是连续的依次递加。

算术表达式中包含不同基本数据类型的值,整个表达式的类型自动提升至与最高等级操作数类型相同(byte,short,char > int > long > float > double)。其中,byte、short和char类型会自动提升到int类型(不管是否有其他类型参与运算)。

byte b1 = 10;

byte b2 = 20;

//byte b3 = b1 + b2; //该行报错。

int i3 = b1 + b2; //byte类型参与算术运算会自动提示为int,应该使用int接收。

byte b3 = (byte) (b1 + b2); //或者将结果强制转换为byte类型。
  • byte、short和char类型会自动提升到int类型,在程序开发中很少使用byte、short类型定义整数。也很少会使用char类型定义字符,而是使用字符串类型,更不会使用char类型做算术运算。

3.字符串的“+”操作:

“+”操作时出现字符串,就是连接运算符,从左到右逐个执行进行连接。

System.out.println(19 + 95 + "Morrison" + 1 + 8); // 输出:1995Morrison18

// 可以使用小括号改变运算的优先级

System.out.println(19 + 95 + "Morrison" + ( 1 + 8 )); // 输出:1995Morrison

二、赋值运算符

1.赋值运算符及说明:

符号说明
=赋值。如:a = 10; //将10赋值给变量a。
+=先加后赋值。如:a += b; //将a+10的值赋值给变量a。
-=先减后赋值。如:a -= b; //将a-10的值赋值给变量a。
*=先乘赋值。如:a *= b; //将a*10的值赋值给变量a。
/=先除赋值。如:a /= b; //将a/10的值赋值给变量a。
%=先取余后赋值。如:a %= b; //将a%10的值赋值给变量a。

除“=”赋值运算符外,其他扩展赋值运算符隐含了强制类型转换。

short s = 10;

//s = s + 10; // 该行报出。

s += 10; //表达式提升为int类型,但隐含了强制类型转换,相当于 s = (short) (s + 10);

三、自增自减运算符

1.自增自减运算符及说明:

符号说明
++自增。如:i ++;或++ i; //变量值加1。
--自增。如:i --;或-- i; //变量值减1。

自增自减运算符置于变量前后区别:

  • 单独使用时,自增自减运算符置于变量前后无区别。
int i = 10;

int j = 20;

i++; //单独使用。

++j; //单独使用。

System.out.println("i:" + i); // i:11

System.out.println("j:" + j); // j:11
  • 参与操作时,自增自减运算符置于变量后,则变量先参与操作,后自增自减。
int x = 10;
int y = x ++; //首先将x的值赋值给y,然后x自增1。
System.out.println("x:" + x + ", y:" + y); // x:11,y:10
  • 参与操作时,自增自减运算符置于变量前,则变量先自增自减,后参与操作。
int m = 10;

int n = ++ m; //首先m自增1,然后将m的值赋值给n

System.out.println("m:" + m + ", m:" + m); // m:11,m:11

四、关系运算符

1.关系运算符运算符及说明:

符号说明
==等于。如:a == b; //判断a和b的值是否相等,结果为true或false。
!=不等于。如:a != b; //判断a和b的值是否不等,结果为true或false。
>大于。如:a > b; //判断a是否大于b的值,结果为true或false。
>=大于等于。如:a >= b; //判断a是否大于等于b的值,结果为true或false。
<小于。如:a < b; //判断a是否小于b的值,结果为true或false。
<=小于等于。如:a <= b; //判断a是否小于等于b的值,结果为true或false。

关系运算符的结果是boolean类型,仅有true或false两种结果。

int a = 10;

int b = 20;

System.out.println(a != b); //输出结果为true。

boolean flag = a > b;

System.out.println(flag); // 输出false。

五、逻辑运算符

1.逻辑运算符及说明:

符号说明
&逻辑与。如:a & b; //a和b均为true,结果为true,否则为false。
|逻辑或。如:a | b; //a和b均为false,结果为false,否则为true。
^逻辑异或。如:a ^ b; //a和b相同为false,不同为true。
!逻辑非。如:!a; //结果与a相反。
&&短路与。如:a && b; //作用与 “&”相同,具有短路效果。
||短路非。如:a || b; //作用与 “|”相同,具有短路效果。

逻辑运算符将多个关系表达式连接,组成复杂的逻辑表达式,以判断条件是否成立,表达式结果为boolean类型。

2.逻辑与和短路与、逻辑或和短路或的区别:

  • 逻辑与“&”:无论左边真假,右边都要执行。即两边的式子都会执行。
  • 短路与“&&”:如果左边为真,右边执行;如果左边为假,右边不执行。
  • 逻辑或“|”:无论左边真假,右边都要执行。即两边的式子都会执行。
  • 短路或“||”:如果左边为假,右边执行;如果左边为真,右边不执行。
int x = 3;

int y = 4;

System.out.println((x++ > 4) & (y++ > 5)); // 两边的式子都会执行自增操作。

System.out.println(x); // 4

System.out.println(y); // 5

System.out.println((x++ > 4) && (y++ > 5)); // 左边已确定为false,右边不执行。

System.out.println(x); // 4

System.out.println(y); // 4

六、三元运算符

三元运算符格式:关系表达式 ? 表达式1 : 表达式2;

问号前为判断条件,结果为true时执行表达式1,为false时执行表达式2。

int height1 = 150;

int height2 = 210;

int height3 = 165;

//先比较前两个身高值,并用临时身高变量temp保存。

int temp = height1 > height2 ? height1 : height2;

//第三个身高值和临时身高值比较,并输出最大值。

System.out.println("最大身高:" + (temp > height3 ? temp : height3));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值