1、自加自减:++、--,它们又分为前加和后加,前减和后减
它们都为一元运算符
例如:
i=i+1;效果相当于i++,++i
但是它们在表达式运算中时就效果就不一样了
例如:
Int age =18;
Int sum=age++ - 10;在该表达式中,sum的计算结果为8,age为19, 但是age是后加(所以在运算时,age++取age 原值进行运算在表达式计算完成后再进行自 加。)
Int sum=++age - 10;sum的计算结果为9,age为19,但是age是前 加,所以在运算时,++age取age加1后的新值 进行运算
总之,不管是++age还是age++在运算之后他们都自加1
而自减--也一样。
一般情况下,一元运算符优先级大于二元运算符
2、复合运算符
+= 例如:age+=3(运算效率更高);相当于age=age+3;理解 成在age的原值上加3
-=
*=
/=
%=
能够改变变量的值的运算符有:
=(赋值运算符)
++,--
上面5种复合运算符归为=
关系运算符
用于比较两个事物之间的关系(二元),比较时数据类型要相同
>, <, ==, !=, >=, <=
关系表达式:a>b ,12!=13等
关系运算的结果是布尔类型的
布尔类型(bool)
Bool类型只有两个值ture和false
如果关系运算表达式成立,那么这个表达式的值为ture,否则为false
逻辑运算符
&&,| | ,!
逻辑运算符&&(与,并且),二元运算符:
表达式1&&表达式2,逻辑“与”连接的两个表达式,要求能够求解成bool类型,一般情况下都是关系表达式。先进行关系运算在进行逻辑运算。
整个逻辑“与”运算的结果也是bool类型
在逻辑运算符&&中,当两个表达式权威true时,其结果为true。当表达式中只要有一个为false整个逻辑运算的结果就是false。
对于逻辑运算符| | (或,或者),二元运算符:
表达式1| |表达式2
逻辑“或”连接的两个表达式,要求能够求解成bool类型,一般情况下都是关系表达式。
整个逻辑“或”运算的结果也是bool类型
当只要有一个为true,其运算结果为true。
对于逻辑运算符|!(非),为一元运算符:
用法:!(布尔类型的表达式),相当于取反
如果(布尔类型的表达式)结果为true,那么加!后其结果就为false,反之亦然。
5、逻辑&&“与”,逻辑| |“或”短路问题
表达式1&&表达式2:
当表达式1不为true时那么不再对表达式2进行计算
例如:
Int a=10;int b=5;
Bool result =++a >50 && ++b >1;
在运算之后其实a=11,b=5。B并不是=6.
因为在逻辑运算符&&的运算中,当第一个表达式不成立时将不再对表达式2进行运算。只有当第一个表达式成立时才会对第二个表达式进行运算。
表达式1| |表达式2
例如:
Int a=10;int b=5;
Bool result =++a >5 | | ++b >1;
在运算之后其实a=11,b=5。B并不是=6.
因为在逻辑运算符| |的运算中,当第一个表达式成立时将不再对表达式2进行运算。只有当第一个表达式不成立时才会对第二个表达式进行运算
|