Java中的算术运算符及赋值运算符

简介: 算术运算符及赋值运算符的简单示例

 一、运算符和表达式

运算符:对常量或者变量进行操作的符号

表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式

不同运算符连接的表达式体现的是不同类型的表达式

举例说明:

int a = 10;
int b = 20;
int c = a + b;

image.gif

+:是运算符,并且是算术运算符。

a+b:是表达式,由于+是算术运算符,所以这个表达式叫算术运算符

二、算术运算符

符号 作用
+
-
*
/
% 取余

注意:

/和%的区别:两个数据做除法,/取结果的商,%取结果的余数。

整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。

int a = 10;
int b = 3;
System.out.println(a / b); // 输出结果3
System.out.println(a % b); // 输出结果1

image.gif

字符的"+"操作

char类型参与算术运算,使用的是计算机底层对应的+进制数值,需要记住三个字符对应的数值:

'a' 对应 97 a-z是连续的,所以'b'对应的数值是98,'c'是99,依次递加

'A' 对应 65 A-Z是连续的,所以'B'对应的数值是66,'C'是67,依次递加

'0' 对应 48 0-9是连续的,所以'1'对应的数值是49,'2'是50,依次递加

// 可以通过使用字符与整数做算术运算,得出字符对应的数值是多少
char ch1 = 'a';
System.out.println(ch1 + 1); // 输出98,97 + 1 = 98
char ch2 = 'A';
System.out.println(ch2 + 1); // 输出66,65 + 1 = 66
char ch3 = '0';
System.out.println(ch3 + 1); // 输出49,48 + 1 = 49

image.gif

算术表达式中包含不同的基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。

提升规则:

byte类型,short类型和char类型将被提升到int类型,不管是否有其他类型参与运算。

整个表达式的类型自动提升到与表达式中最高等级的操作数相同的类型

等级顺序:byte,short,char --> int --> long --> float --> double

例如:

byte b1 = 10;
byte b2 = 20;
// byte b3 = b1 + b2; // 该行报错,因为byte类型参与算术运算会自动提示为int,int赋值给byte可能损失
精度
int i3 = b1 + b2; // 应该使用int接收
byte b3 = (byte) (b1 + b2); // 或者将结果强制转换为byte类型
-------------------------------
int num1 = 10;
double num2 = 20.0;
double num3 = num1 + num2; // 使用double接收,因为num1会自动提升为double类型

image.gif

正是因为上述原因,所以在程序开发中我们很少使用byte或者short类型定义整数,也很少会使用char类型定义字符,而使用字符串类型,更不会使用char类型做算术运算。

字符串的"+"操作

当“+”操作中出现字符串时,这个”+”是字符串连接符,而不是算术运算。

System.out.println("xiazhi"+ 66); // 输出:xiazhi66

image.gif

在”+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行“+”操作时,从左到右逐个执行。

System.out.println(1 + 99 + "年的人类"); // 输出:199年的人类
System.out.println(3 + 3 + "xiazhi" + 5 + 5); // 输出:6xiazhi55
// 可以使用小括号改变运算的优先级 
System.out.println(4 + 2 + "xiazhi" + (4 + 4)); // 输出:6xiazhi8

image.gif

三、赋值运算符

赋值运算符的作用是将一个表达式的值赋给左边,左边必须是可修改的,不能是常量。

符号 作用 说明
= 赋值 a=66,将66赋值给变量a
+= 加后赋值 a+=b,将a+b的值给a
-= 减后赋值 a-=b,将a-b的值给a
*= 乘后赋值 a*=b,将axb的值给a
/= 除后赋值 a/=b,将a+b的商给a
%= 取余后赋值 a%=b,将a+b的余数给a

注意:扩展的赋值运算符隐含强制类型转换。

short s = 10;
s = s + 10; // 此行代码报出,因为运算中s提升为int类型,运算结果int赋值给short可能损失精度
s += 10; // 此行代码没有问题,隐含了强制类型转换,相当于 s = (short) (s + 10);

image.gif


目录
相关文章
|
1月前
|
Java
JAVA运算符
JAVA运算符
15 3
|
15天前
|
Java
Java 运算符
4月更文挑战第8天
|
1天前
|
Java
Java基础&运算符
Java基础&运算符
|
1天前
|
Java 开发者
Java基础知识整理,注释、关键字、运算符
在日常的工作中,总会遇到很多大段的代码,逻辑复杂,看得人云山雾绕,这时候若能言简意赅的加上注释,会让阅读者豁然开朗,这就是注释的魅力!
36 11
|
17天前
|
Java
Java_运算符
该文档介绍了编程中的几种运算符。算术运算符包括加、减、乘、除和取余
15 1
|
1月前
|
Java
Java运算符
Java运算符
7 0
|
1月前
|
Java 程序员
Java的运算符常量
Java的运算符常量
11 0
|
1月前
|
Java
JAVA的算数运算符
JAVA的算数运算符
8 0
|
1月前
|
Java
Java:条件运算符的嵌套
Java:条件运算符的嵌套
|
1月前
|
Java 测试技术 程序员
滚雪球学Java(09-10):Java中的Lambda运算符,你真的掌握了吗?
【2月更文挑战第21天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!!
38 0