目录
算术运算符:
用于各类数值的计算。常见的有 + - * / %(取余) ++ --
+ - * / %就是基础运算,与需要过多解释,这里主要解释的是:
++ 自增符号 -- 自减符号
++变量(前置++) 变量++(后置++)/ --同理
1.这两种单独构成一条语句时,结果相同。
a++ => a+1
++a => a+1
2.不单独构成一条语句时
前置++:先取值,再自增一,最后和其他运算符相结合
int num = 0;
int value = ++ num;
在该种情况下,最后的结果为 num = 1,value = 1
后置++:先取值,后和其他运算符相结合,最后在自增1
int num = 0;
int value = num++;
在该种情况下,最后的运算结果为 num = 1,value = 0
如果不确定自己是否掌握,可以做一个小练习,对照结果(可以写出每一步a,b对应的值)
练习:
int a = 0;
int b = a++;
++a;
b = ++a;
b = a--;
b = --a;
++a;
b = a++;
b = --a;
结果:
int a = 0; a = 0
int b = a++; a = 1 b = 0
++a; a = 2
b = ++a; a = 3 b = 3
b = a--; a = 2 b = 3
b = --a; a = 1 b = 1
++a; a = 2
b = a++; a = 3 b = 2
b = --a; a = 2 b = 2
关系运算符:
在判断条件中,让程序决定下一步的操作。
常见的关系运算符: > < >= <= == !=(不等于)
赋值运算符: =
逻辑运算符:
用来表达日常交流中的“并且”,“或者”,“除非”等思想。
逻辑与 && :
判断式子都为真,结果才为真(一假则假)
也叫短路运算符,表达式为假就不再继续进行运算。
注意:在写条件时 不能写成连续判断模式:
如:85 <= score <= 100 X
当表达式写成这种情况是,编译器自左向右以此判断,也就是当score满足>=85时,判断的结果为真,在计算器中自动替换为1,1<=100一定是成立的,即该式只能判断score大于等于85,并不能判断score小于100
为了避免上述情况,我们需要将式子拆开写,当两个式子都为真时,结果才为真
85 <= score && score <= 100
逻辑或 || :
判断式子有一个为真,结果就为真(一真则真)
也叫短路运算符,表达式为真就不再继续进行运算。
例:当成绩大于100或者小于0的时候,录入成绩不正确
score > 100 || score < 0
位运算符:
位移动
>> 向右移动 数字缩小
0000 1010 >> 00000 101
<< 向左移动 数字扩大
0000 1010 >> 000 10100
按位与 &
两方都为1 当前位结果为1
10 & 3 0000 1010
& 0000 0011
--------------------------
0000 0010 =》 2
按位或 |
当前位有1 结果就为1
10 | 3 0000 1010
| 0000 0011
-----------------------
0000 1011 =》11
按位取反 ~
0取1 1取0
~0000 1011 = 1111 0100
异或 ^
当前位相同(都为0或1),结果为0;当前位不同,结果为1 同0异1
10 ^ 3 0000 1010
^ 0000 0011
-----------------------------
0000 1001 =》 9
附录:运算符优先级