今天学习了算术运算符、赋值运算符、比较运算符、逻辑运算符
Java中的算术运算符和生活中的算数运算基本相似。
1、算术运算符符号:
符号 名称 功能说明 + 加 加法运算 - 减 减法运算 * 乘 乘法运算 / 除 除法运算 % 取余 求两个数字相除的余数
2、算术运算符举例:
在使用算术运算时需要注意运算两侧类型:当两侧类型不统一时,运算结果和较大类型保持一致。
int a = 3; int b = 5; int c = a + b; //加法运算 c = a * b; //乘法 c = a / b; //除法运算 结果为零 注意除法运算当两侧类型统一结果仍为运算数据保持一致 c = a % b; //取模运算 ,即求a/b的余值
3、算术运算符的注意问题
如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论。
对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。
“+”除字符串相加功能外,还能把非字符串转换成字符串 。“+”运算符两侧的操作数中只要有一个String类型,一个是基本数据类型时,编译成class文件后,两个操作数就被连接成了一个新的String值:
4、自加自减:
自加(++)自减(--)运算
++:自加。对原有的数据进行+1
--:自减。对原有的数据进行-1
当在一个运算表达式中包含自加运算时,当自加符号在变量右侧时,需要先将变量的值临时保存,然后给变量空间加1,接着用临时变量空间中的值去和其他运算符进行运算。当自加符号在变量左侧时,需要先给变量空间加1,然后把加1后的值和其他运算符进行运算。
int a = 4; int b; b = a++; System.out.println("a="+a+",b="+b);
【赋值运算符】
赋值运算符号:
= , +=, -=, *=, /=, %=
赋值号的功能是将赋值号右侧的结果存储到左侧的变量空间中。
int a = 3 ; //将3存储到左侧a空间中 int b , c , d; b = c = d = a; // 将a空间中的值分别存放到d,c,b 空间中
赋值号和算术运算符组合起来的混合运算符,它们即具有算术运算的特定,同时还具有赋值运算的特定。
int a = 4; a += 3; //相当于 a = a + 3;的运算,即把a空间中的值和3进行加法运算,把和值从新存放到a空间中
思考:以下代码有什么区别?
short s = 3; s=s+2; s+=2;
说明:
s=s+2//编译失败,因为s会被提升为int类型,运算后的结果还是int类型。无法赋值给short类型。
s+=2//编译通过,因为+=运算符在给s赋值时,自动完成了强转操作。
【比较运算符】
在生活中经常需要判断数据大小,相等不相等各种操作,在Java中同样也可以判断数据的大小。
比较运算符符号:
>大于 >=大于等于 <小于 <=小于等于 ==相等 !=不等
比较运算符。运算完的结果要么true,要么false。后期学习中会根据比较的结果做出相应逻辑判断。
int a = 4; int b = 5; boolean c ; c = a > b; System.out.println(b);
注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
注2:比较运算符“==”不能误写成“=” 。
【逻辑运算符】
当需要判断某些数据符合某个区间,比如人的年龄符合某一范围等。发现使用比较运算没法完成。Java给我们提供另外一直机制,逻辑运算。逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 。
1、逻辑运算符号:
逻辑运算符。用来连接boolean型表达式的。
& : 与
| :或
^ : 异或。
!:非。
&& 短路与 || 短路或
2、运算规律
int x = 7; x>2 & x<5 x<2 | x>5 & :两边都为true,结果是true。否则为false。 两边只要有一个false。结果必然是false。 true & true = true; true & false = false; false & true = false; false & false = false; | :两边都为false,结果是false。否则为true。 两边只要有一个true。结果必然是true。 true | true = true; true | false = true; false | true = true; false | false = false; ^ : 异或。 两边相同为false。两边不同为true。 true ^ true = false; true ^ false = true; false ^ true = true; false ^ false = false; !:非 非真为假,非假为真 !true = false; “&”和“&&”的区别:单与时,左边无论真假,右边都进行运算;双与时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。 “|”和“||”的区别同理,双或时,左边为真,右边不参与运算。