04 运算符
今天学习了运算符
运算符就是程序中一种很特殊的符号 连接程序中需要参与运算的变量(前提条件是该变量有值)
常见的运算符有很多 : "" '' ; _ - ,这些都是
今天主要学习了6种运算符:
算数运算符:+ - * / % ++i i++ --i i--
赋值运算符: + += -= *= /= %=
比较运算符: > < == >= <= !=
逻辑运算符: 与& 或| 非!
位运算符 : 与位运算 & 或位运算 | 异或位运算 ^
三目(元)运算符 ?:
算数运算符:
+的作用
+ 第一个作用:连接变量(变量的类型:基本+引用(String))
String name ="张三";
int age = 20;
System.out.println(name+age); 结果为 张三20
+ 第二个作用:相加运算
int a = 10;
int b = 20;
int c = a+b;
System.out.println(c); 结果为30
+ 第三个作用:正数>0(0是自然数,0也是整数
int a2 = 10;
int b2 = +a2;
System.out.println(b2);结果为 10
( number += 6 等同于number =number+6(减法一样) )
- 的作用
- 第一个作用:相减运算(具体参考相加运算)
第二个作用:负数 < 0
int a4 =20;
int b4 =-a4;
System.out.println(b4); 结果为 -20;
(在为负数时,绝对值| |不成立)
* 的作用 做乘法运算(具体参考相加运算)
/ 的作用 除法运算求商保留整数,余数不要
% 的作用 除法运算 求余数
(注意:在除法运算中,除数和被除数正负不一致结果则为负 余数正负随着被除数走)
++的作用 自加运算符
number2++; 等价于 number2 = number2 +1;等价于number2 +=1;
如果变量值在++运算符的左边,那么在运算过程中,先进行++运算符左边的运算,再执行++运算(++运算符的级别很低),如果变量在++运算符的右边,那么在运算过程中,先进行++运算,再进行其他运算,但是不管变量在++运算符的左边还是右边,对该变量本身都会做自加1运算。
-- 自减符运算
如果--运算符和其他运算符混合使用,执行的原理等同于++运算符。
赋值运算符:就是给变量赋值(初始化)
= 等号代表的意思是把等号右边的数据赋值给等号左边的变量
+= 相加赋值,就是该运算符左边的变量相加运算符右边的数据的结果又赋值给该运算符左边的变量
-= 相减赋值,意思同上
*= 相乘赋值,意思同上
/= 相除赋值,意思同上 求商数
%= 相除赋值,意思同上 求余数
eg:int a = 6;(这就是赋值)
比较运算符:
> < == >= <= !=
大于 小于 等于 大于等于 小于等于 不等于
1.比较运算符中“等于”符号 是“==”,而不是“=”(这个=是赋值运算符)。
2.比较运算符运算结果就是布尔类型值,要么是true,要么是false。
3.比较运算符可以连接表达式或者语句(但不是所有的表达式和语句都可以连接)
eg:int a = 10;
int b = 20;
System.out.println(a > b);结果为 false
其前后也可以是语句
eg:System.out.println(a++ > b--);其结果为false
逻辑运算符:
与& 或| 非!
& “与”运算符
boolean bool = true;
boolean bool2 = false;
boolean bool3 = bool & bool2;
System.out.println(bool3);//false / false / false / true“与”运算符 在运算过程中,只要有一个false,结果就是false。
| “或”运算符(使用方式同上)
其大体与“与”运算符一致 ”或“运算符,在程序运算过程中,只要有一个为true,结果就为true,否则为false。
! “非”运算符(使用方式同上)
boolean var06 = !var04;
结果就是对连接的该布尔类型值取相反结果。( 注意: “非”运算符,在程序中运算中,一般只能连接一个布尔类型值,而且非运算符只能放在布尔类型值的左边。)
^ 异或运算符(使用方式同上)
如果异或运算符连接点左右布尔类型变量(表达式)的值相同,结果为false,反之,如果异或运算符连接的左右布尔类型变量(表达式)的值不相同,结果为ture
&&(| |)双&(|)运算符
相同点:都是做“与”运算,不同点,&&可以实现短路(断路)
备注:断路效果,当&&符号左边的布尔类型值可以确认为false的时候,(||左边可以确认是ture的时候)
那么程序在执行到&&符号的时候,会发生跳跃,也就是&&后面的表达式程序不再执行了。
位运算符
包含三种:与位运算 或位运算 异或位运算
(特点:数据类型是数字)
需要使用十进制转二进制,解释在与位运算中。
& 与位运算 (两者 二进制 各个位数 有一个及以上为0,即为0)
eg: int a = 13; 十进制转二进制:13 = 2^3 + 2^2 + 2^0 = 1 1 0 1
int b = 5; 5 = 2^2 + 2^0 = 0 1 0 1
int c = a & b; = 0 1 0 1 =2^2 + 2^0 =4 + 1= 5(这个5就是与位运算最终结果)
System.out.println( c ); // 5 =1 1 0 1 = 2^3 + 2^2 + 2^0 =8 + 4 + 1 =13(这个13就是或位运算最终结果)
= 1 0 0 0 = 2^3 =8 (这个8就是异或位运算最终结果)
| 或位运算 (两者 二进制 各个位数 有一个及以上1,结果即为1)
^ 异或位运算 (两者 二进制 各个位数不相同即为1,相同为0)
(数字连续除2是标准的十进制转二进制方法,2的指数相加是二进制转十进制的方法,上述十进制转二进制使用的是2的指数相加)
三目运算符
?: 三目运算符
使用方法:布尔类型值 ? 该布尔类型值为真的结果值:该布尔类型值为假的结果值
结果值要依据布尔类型表达式,当表达式为真,结果就是紧邻问号“?”后面的值
当表达式为假的时候,结果就是“:”后面的结果值
eg:
直接在输出语句中使用
int a = 10;
int b = 20;
System.out.println(a>b ?"a > b ?":"a < b √");// a<b√
System.out.println(a < b ? true :false );// true
System.out.println(a <= b ? "a <= b √" :false);// a<=b√
在语句中使用(不是输出语句) 赋值运算中
int a = 10;
int b = 20;
int c =a>b ? a:b ; //获取的是a,b的最大值
System.out.println(c);// 20
String d = a > b ? "是真的吗":"你是假的";
System.out.println(d); // 你是假的!