- 表达式
把变量和字面值与运算符组合起来,就可能创建表达式。
例如:a + b * 3
- 运算符
运算符可分为一元运算符、二元运算符和三元运算符。
1、数学运算符
-
运算符 类别 示例表达式 结果 + 二元运算符 var1 = var2 + var3 var1的值是var2与var3的和 - 二元运算符 var1 = var2 - var3 var1的值是var2减去var3所得值 * 二元运算符 var1 = var2 * var3 var1的值是var2与var3的乘积 / 二元运算符 var1 = var2 / var3 var1的值是var2除以var3所得商 % 二元运算符 var1 = var2 % var3 var1的值是var2除以var3所得余数 + 一元运算符 var1 = +var2 var1的值等于var2的值 - 一元运算符 var1 = -var2 var1的值是var2与-1的乘积 ++ 一元运算符 var1 = ++var2 var2先递增1,然后赋值给var1(即var2+1) -- 一元运算符 var1 = --var2 var2先递减1,然后赋值给var1(即var2-1) ++ 一元运算符 var1 = var2++ 先把var2赋值给var1,然后var2递增1 -- 一元运算符 var1 = var2-- 先把var2赋值给var1,然后var2递减1
注:1) bool类型不能进行数学运算;
2) char类型存储也是数字可以进行数学运算,如果把两个char类型变量相加将得到int类型。
3) string类型变量可以进行加法运算,表示两个string变量进行连接。例如
string a = "hello ";
string b = "world";
string c = a + b; // c = "hello world"
其他数学运算符不能应用于string类型变量。
4) ++和--为递增或递减运算符,把运算符放在操作前面,则操作数在进行任何其他运算前受 到运算符的影响,而把运算符放在操作数后面,则操作数在完成表达式后受到运算符的影响。
例如: int var1, var2 = 5, var3 = 6;
var1 = var2++ * --var3; // var1 = 5 * 5 ==> 25
2、赋值运算符
运算符 | 类别 | 示例表达式 | 结果 |
= | 二元运算符 | var1 = var2 | var1被赋值为var2 |
+= | 二元运算符 | var1 += var2 | var1被赋值为var1与var2的和 |
-= | 二元运算符 | var1 -= var2 | var1被赋值为var1与var2的差 |
*= | 二元运算符 | var1 *= var2 | var1被赋值为var1与var2的乘积 |
/= | 二元运算符 | var1 /= var2 | var1被赋值为var1与var2相除的商 |
%= | 二元运算符 | var1 %= var2 | var1被赋值为var1与var2相除的余数 |
注:1) +=赋值运算符同样适用于string类型变量。
2) 当操作数var2表达式很长时,上述运算符使用起来很方便,代码更容易阅读。
例如: var1 *= var2 + var3 ==> var1 = var1 * (var2 + var3)
3、运算符优先级
在计算表达式时,会按顺序处理每个运算符。
优先级 | 优先级 |
优 先 级 由 高 到 低 |
++、--(前缀),+、-(一元) |
*、/、% | |
+、-(二元) | |
=、*=、/=、%=、+=、-= | |
++、--(后缀) |
注:1) 括号可以重写运算符优先级。
例如:(var1 + var2) * var3 ==> 先计算var1+var2表达式,然后再与var3进行乘积
2) ++和--用作后缀运算时,它们不对表达式的结果产生影响。可认为它们比所有运算符优先 级都高。