文章目录
今日目标
掌握运算符(继续学习不光无聊,还逃离不了的内容)
今日主角:运算符
1.赋值运算符:
赋值运算符“=”,记住了这不是我们认为的等于号,不是等于号,不是等于号,重要的事情说三遍;
它的含义是把它右面的东西放到左面的盒子里面,不是左面那个东西等于右面那个东西;
基本语法:变量类型 变量名 = 表达式;
例1
int x = 10;//int 变量类型,x变量名,10表达式,10怎么就是表达式了呢,好吧,我换一下
int x = 10 + 0;//这回像表达式了吧
例2
int a,b,c;//这个叫声明变量,上面那个例子只是把声明和赋值放在一起了
a = b = c = 10;//这样写也没毛病
2.算术运算符:
[1].+加、-减、*乘、/除
没啥可说的,我中心小学肄业都能看明白的,不信你会不明白
[2].%取余(模)运算符
5%2等于1,1就是5/2的余数,说完了,嗯,就能说这么多,再多我也说不出来了
[3].复合运算符(+=、-=、*=、/=、%=)
int a = 5; a += 2; 等价于 int a = 5; a = a + 2;
int a = 5; a -= 2; 等价于 int a = 5; a = a - 2;
int a = 5; a *= 2; 等价于 int a = 5; a = a * 2;
int a = 5; a /= 2; 等价于 int a = 5; a = a / 2;
int a = 5; a %= 2; 等价于 int a = 5; a = a % 2;
int a = 5;
a += a += 6;//等价于 a = a + (a + 6);括号的作用等同于代数中括号的作用
[4].自增自减运算符(++、–)
int a = 5; a++;等价于 int a = 5; a = a + 1;
int a = 5; a–; 等价于 int a = 5; a = a - 1;
注意: a++; 单独使用时,也可以写成 ++a;a–;也同理。如果作为表达式或表达式的一部分,那就要小心了,比如:b = a++;运行结果和b = ++a;是不一样的
int a,b; b = a++; 等价于 int a,b; b = a; a = a + 1;
int a,b; b = ++a; 等价于 int a,b; a = a + 1; b = a;
细心的你一定发现不同了,++在后面,就是后做+1的操作,++在前面就是先做+1操作。这个有的时候会把你搞蒙圈,我就被搞蒙了。。。。
3.关系运算符
关系运算符:>、<、>=、<=、==、!=
关系运算符的运算结果为boolean类型
运算符 | 说明 | 举例 | 结果 |
---|---|---|---|
> | 大于 | 50>60 | false |
< | 小于 | 50<60 | true |
>= | 大于等于 | 50>=60 | false |
<= | 小于等于 | 50<=60 | true |
== | 等于(这才是等于) | 50==60 | false |
!= | 不等于 | 50!=60 | true |
这个没啥可说的,只有一个字,就是:牢记。
4.逻辑运算符(短路运算符)
逻辑运算符用于连接关系表达式,运算结果也为boolean类型
运算符 | 说明 | 举例 | 结果 |
---|---|---|---|
&& | 与运算,运算符两侧表达式必须同时为true,结果为true | 50>60 && 40<50 | false |
|| | 或运算,运算符两侧表达式一侧为true时,结果为true | 40<50 || 50>60 | ture |
! | 非运算,取反 | !(40<50) | false |
为什么还叫短路运算符?哇!你是真聪明,问题好刁钻啊,我先看眼书去。。。。。。。
咳咳!我们用&&与运算举例吧,当与运算发现它左侧的关系表达式结果为false时,它就不再检查右侧的表达式结果了,因为与运算有一侧为false,那么结果就为false,这就是所谓的短路,你肯定听明白了。
5.三元运算符(三目运算符)
“?:”Java里唯一的三目运算符
语法:布尔表达式?表达式1 :表达式2;
如果布尔表达式为ture,返回的结果就是表达式1,否则返回表达式2的结果
int a = 13;
String b;
b = (a>18) ? "成年人" : "未成年人";
聪明的你肯定发现了,这等价于:
int a = 13;
String b;
if (a>18){
b="成年人";
}else{
b="未成年人";
}
挺好玩的一个运算符,用起来应该也挺顺手的,我不知道啊,我瞎猜的。。。。。。
6.instanceof运算符
定义: instanceof运算符的前一个操作数通常是一个引用型变量,后一个操作数通常是一个类,它用于判断运算符前面的引用变量是否是运算符后面的类型,或其子类型的实例。
不明白也别问,问就鸡毛掸子伺候,这段话我打下来就挺不容易的,还要解释?你想多了!不过这么执拗的定义,也证明了,这个运算符不简单,估计有大用,反正我是先PASS了。
7.位运算符
位运算符,顾名思义就是对位进行操作的,怎么感觉说了跟没说一样呢
运算符 | 名称 | 作用 |
---|---|---|
& | 与 | 运算符两侧数元所有相同位都为1,结果为1 |
| | 或 | 运算符两侧操作数有1相同位为1,结果为1 |
^ | 异或 | 运算符两侧操作数相同位都不同,结果为1 |
<< | 左移 | 操作数所有位向左位移N位,高位丢弃,低位补0 |
>> | 右移 | 操作数所有位向右移N位,正值高位首位赋0,负值高位首位赋1 |
>>> | 无符号右移 | 不区分正负,操作数所有位向右移N位,高位补0 |
各位一定都是C语言大神,所以不解释了
8.运算符优先级
优先级由左至右依次递减
又学完一天,这些东西就是背啊背,要变成肌肉反射的