运算
算术运算符¶
运算符 | 功能 |
---|---|
+ |
单目正 |
- |
单目负 |
* |
乘法 |
/ |
除法 |
% |
取模 |
+ |
加法 |
- |
减法 |
算术运算符中有两个单目运算符(正、负)以及五个双目运算符(乘法、除法、取模、加法、减法),其中单目运算符的优先级最高。
其中取模运算符 %
意为计算两个整数相除得到的余数,即求余数。
而 -
为双目运算符时做减法运算符,如 2-1
;为单目运算符时做负值运算符,如 -1
。
使用方法如下
op=x-y*z
得到的 op
的运算值遵循数学中加减乘除的优先规律,首先进行优先级高的运算,同优先级自左向右运算,括号提高优先级。
自增/自减 运算符¶
有时我们需要让变量进行增加 1(自增)或者减少 1(自减),这时自增运算符 ++
和自减运算符 --
就派上用场了。
自增/自减运算符可放在变量前或变量后面,在变量前称为前缀,在变量后称为后缀,单独使用时前缀后缀无需特别区别,如果存在赋值运算符时则需注意,具体可看下面的例子。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | i = 100; op1 = i++; // op1 = 100,先 op1 = i,然后 i = i + 1 i = 100; op2 = ++i; // op2 = 101,先 i = i + 1,然后赋值 op2 i = 100; op3 = i--; // op3 = 100,先赋值 op3,然后 i = i - 1 i = 100; op4 = --i; // op4 = 99,先 i = i - 1,然后赋值 op4 |
复合赋值运算符¶
复合赋值运算符实际上是表达式的缩写形式。
op=op+2
可写为 op+=2
op=op-2
可写为 op-=2
op=op*2
可写为 op*=2
比较运算符¶
运算符 | 功能 |
---|---|
> |
大于 |
>= |
大于等于 |
< |
小于 |
<= |
小于等于 |
== |
等于 |
!= |
不等于 |
其中特别需要注意的是要将等于运算符 ==
和赋值运算符 =
区分开来,这在判断语句中尤为重要。
if(op=1)
与 if(op==1)
看起来类似,但实际功能却相差甚远。第一条语句是在对 op 进行赋值,若赋值为非 0 时为真值,表达式的条件始终是满足的,无法达到判断的作用;而第二条语句才是对 op
的值进行判断。
逻辑运算符¶
运算符 | 功能 |
---|---|
&& |
逻辑与 |
|| |
逻辑或 |
! |
逻辑非 |
1 2 3 4 5 | Result = op1 && op2; //当 op1 与 op2 都为真时则 Result 为真 Result = op1 || op2; //当 op1 或 op2 其中一个为真时则 Result 为真 Result = !op1; //当 op1 为假时则 Result 为真 |
逗号运算符¶
逗号运算符可将多个表达式分隔开来,被分隔开的表达式按从左至右的顺序依次计算,整个表达式的值是最后的表达式的值。逗号表达式的优先级在所有运算符中的优先级是 最低 的。
1 2 3 4 5 6 7 8 9 10 | exp1, exp2, exp3; //最后的值为 exp3 的运算结果。 Result = 1 + 2, 3 + 4, 5 + 6; //得到 Result 的值为 3 而不是 11,因为赋值运算符 "=" //的优先级比逗号运算符高,先进行了赋值运算才进行逗号运算。 Result = (1 + 2, 3 + 4, 5 + 6); // 若要让 Result 的值得到逗号运算的结果则应将整个表达式用括号提高优先级,此时 // Result 的值才为 11。 |
build本页面最近更新:,更新历史
edit发现错误?想一起完善? 在 GitHub 上编辑此页!
people本页面贡献者:Ir1d, aofall
copyright本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用