Java复习运算符和表达式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java复习运算符和表达式相关的知识,希望对你有一定的参考价值。
运算符主要是指进行特定操作的符号。如:+。
表达式是指用运算符连接起来的式子叫做表达式。如:20+5,a+b。
Java世界中运算符主要分为以下几类:算术运算符、赋值运算符、比较运算符、逻辑运算符和三元运算符。
一、 算术运算符
加(+):四则运算的加法
减(-):四则运算的剑法
乘(*):四则运算的乘法
除(/):四则运算的除法
取模(%):常说的求余数
注意事项:
- 一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种。
- 只有对于整数的除法来说,取模运算才有余数的意义。
- 在进行运算时,首先计算得到表达式的结果,然后在进行后续操作。
- 四则运算的加号对于char类型来说,在计算之前,char类型会被提升为int类型,然后在进行计算。
-
对于字符串String类型来说,加号代表字符串连接操作。并且任何数据类型和字符串进行连接操作,结果都会变成字符串。
可以看一下代码示例:public class TestOperator { public static void main(String[] args){ //两个常量之间的数学运算 System.out.println(20+30); //两个变量之间的数学运算 int a = 20; int b = 5; System.out.println(a-b); //并且变量和常量之间可以混合使用 System.out.println(a*10); int x = 10; int y = 3; //因为x和y都是整数,除数的结果也是整数。所以结果会进行截断。 int result1 = x/y; System.out.println(result1); int result2 = x%y; System.out.println(result2); //浮点数也可以进行运算 double result3 = x + 2.5; System.out.println(result3); } }
算术运算符还有两种特殊的运算符,就是自增运算符(++)、自减运算符(--)。
基本含义:
自增运算符让变量的值增加1,自减运算符是让变量的值减1。
使用格式:
写在变量名称前,或者写在变量名称之后。如:++num或num++。
使用方式: - 单独使用:不和其他任何操作混合,自己独立称为一个步骤。
- 混合使用: 和其他操作混合,例如与赋值混合,或者与打印操作混合等。
两种使用方式区别: - 在单独使用的时候,前++和后++没有任何区别。也就是说++num和num++结果是完全一样的。
-
在混合使用的时候,有重大区别:
A. 如果是前++,那么变量马上加1,然后拿着结果进行使用。可以称作,先加后用。
B. 如果是后++,那么首先使用变量本来的数值,然后在让变量加1,可以称作,先用后加。
注意事项:
只有变量才能使用自增、自减运算符,常量不可用。
请看以下示例:public class TestPlus { public static void main(String[] args) { //字符串类型的变量基本使用 //数据类型 变量名称 = 数据值; String str1 = "Hello"; System.out.println(str1); System.out.println("Hello" + "World"); String str2 = "Java"; System.out.println(str2 + 20); //优先级问题 System.out.println(str2 + 20 + 30); //自增自减 int num1 = 10; System.out.println(num1); ++num1;//单独使用,前++ System.out.println(num1); num1++;//单独使用,后++ System.out.println(num1); int num2 = 20; //混合使用,前++,变量马上变为21,然后打印输出 System.out.println(++num2); System.out.println(num2); int num3 = 30; //混合使用,后++,先使用变量原值30,打印输出,然后变量加1,变为31. System.out.println(num3++); System.out.println(num3); int num4 = 40; //混合使用,前--,变量马上变为39,然后赋值result1 int result1 = --num4; System.out.println(result1); System.out.println(num4); int num5 =50; //混合使用,后--,先使用变量原值50,赋值result2,然后变量减1,变为49. int result2 = num5--; System.out.println(result2); System.out.println(num5); int x = 10; int y = 20; int result3 = ++x + y--; System.out.println(result3); System.out.println(x); System.out.println(y); } }
二、 赋值运算符
赋值运算符分为两种:
一是基本赋值运算符:就是一个等号“=”,代表将右侧的数据交给左侧的变量。
二是复合赋值运算符:
+=: 例如 a += 1 相当于 a = a + 1
-=: 例如 b -= 4 相当于 b = b - 4
=: 例如 c = 5 相当于 c = c * 5
/=: 例如 d /= 6 相当于 d = d / 6
%=: 例如 e %= 7 相当于 e = e % 7
注意事项: - 只有变量才能使用赋值运算符,常量不能进行赋值。
-
复合赋值运算符其中隐含了一个强制类型转换。
请看示例:public class TestEqual{ public static void main(String[] args) { int a = 10; a += 5; System.out.println(a); int x = 10; x %= 3; System.out.println(x); byte num = 30; //num += 5 相当于 num = num +5; //也就是byte = byte + int; //右边表达式会先把byte自动转换称为int,最后进行强制转换成byte. //所以复合赋值运算符帮我们做了一个强制类型转换 num += 5; System.out.println(num); } }
三、 比较运算符
== 比较符号两边数据是否相等,相等结果就是true。
< 比较符号左边的数据是否小于右边的数据,如果小于,结果就是true。比较符号左边的数据是否大于右边的数据,如果大于,结果就是true。
<= 比较符号左边的数据是否小于等于右边的数据,如果小于等于,结果就是true
= 比较符号左边的数据是否大于等于右边的数据,如果大于等于,结果就是true。
!= 比较符号两边数据是否相等,不相等结果就是true。
注意事项:
- 比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false。
- 如果进行多次判断,不能连着写。
public class TestCompare { public static void main(String[] args) { System.out.println(10>5); iint num1 = 10; int num2 = 15; System.out.println(num1 < num2); System.out.println(num1 >= 30); System.out.println(num2 <= 50); System.out.println(num2 <= 15); System.out.println(num2 == 15); System.out.println(num1 != 15); //java不支持连着进行比较,可以使用下节的逻辑比较符进行。 //System.out.println(4 < num1 < 20); } }
四、 逻辑运算符
与 && 全都是true,才是true; 否则就是false
或 || 至少一个是true, 就是true; 全都是false,才是false
非 ! 本来是true,变成false;本来是false,变成true。
注意事项:
- 逻辑运算符只能用于Boolean值。
- 与、或需要左右各自有一个Boolean值,但是取反只要有唯一的一个Boolean值即可。
- 与、或两种运算符,如果有多个条件,可以连续写。
- 与、或具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码将不再执行,从而节省性能。
五、 三元运算符
Java中根据数据的多少可以分为:
一元运算符: 只需要一个数据就可以进行操作的运算符。例如:取反!、自增++、自减--
二元运算符: 需要两个数据才可以进行操作的运算符。例如:加减乘除
三元运算符: 需要三个数据才可以进行操作的运算符。
格式: 数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B
流程:
首先判断条件是否成立:
如果成立为true,那么将表达式A的值赋给左侧的变量
如果不成立为false,那么将表达式B的值赋给左侧的变量
注意事项:
- 必须同时保证表达式A和表达式B都符合左侧数据类型的要求。
-
三元运算符的结果必须被使用。
public class TestThreeVar { public static void main(String[] args) { int a = 10; int b = 20; int max; //判断a>b是否成立,如果成立将a的值赋给max,如果不成立将b的值赋给max. max = a > b ? a : b; System.out.println(max); //两个表达式的值必须同时符合左侧数据类型的要求。 //int result = 3 > 4 ? 2.4 : true; //并且三元表达式不能直接使用 //a > b ? a : b } }
以上是关于Java复习运算符和表达式的主要内容,如果未能解决你的问题,请参考以下文章