C# 表达式 数学运算符
有5个简单的数学运算符,其中两个(+和_)有二元和一元两种形式。表34列出了这些运算符,并用一个 简短示例来说明它们的用法,以及使用简单的数值类型(整数和浮点数)时它们的结果。
运算符 | 类 别 | 示例表达式 | 结果 |
+ | 二元 | varl = var2 + var3; | varl的值是var2与var3的和 |
- | 二元 | varl = var2 - var3; | varl的值是从var2减去var3所得的值 |
准 | 二元 | varl = var2 * var3; | varl的值是var2与var3的乘积 |
/ | 二元 | varl = var2 / var3; | varl是var2除以var3所得的值 |
% | 二元 | varl = var2 % var3; | varl是var2除以var3所得的余数 |
+ | —元 | varl = +var2; | varl的值等于var2的值 |
- | 一元 | varl = -var2; | varl的值等于var2的值乘以-1 |
注意:
+(—元■算符有点古怪,因为_它对结果没有影响.:它不会把值变成正的:..如果var2是-1,别+\«12仍是-1. 但这是一个得到普遍认可的运算符,^■以也把它包含进来。这个运算符最有用的方面是,可以定制它妁樣作, 本书在后面探讨运算符的舍载时会外為它。
上面的示例都使用简单的数值类型,因为使用其他简单类型,结果可能不太清晰。例如把两个布尔值加在 —起,会得到什么结果?因此,如果对bool变量使用+(或其他数学运算符),编译器会报错。chai•变量的相加也 会有点让人摸不着头脑。记住,char变量实际上存储的是数字,所以把两个chai•变量加在一起也会得到一个数 字(其类型为int)。这是一个隐式转换示例,稍后将详细介绍这个主题和显式转换,因为它也可以应用到varl、 var2和var3是混合类型的情况。
二元运算符+在用于字符串类型变量时也是有意义的。此时,它的作用如表3-7所示。
运算符 | 类 别 | 示例表达式 | 结 果 |
+ | 二元 | varl = var2 + var3; | varl的值是存储在var2和var3中的两个字符串的连 |
接值 |
但其他数学运算符不能用于处理字符串。
这里应介绍的另两个运算符是递増和递减运算符,它们都是一元运算符,可通过两种方式来使用它们:放 在操作数的前面或后面。简单表达式的结果如表3-8所示。
运算符 | 类 别 | 示例表达式 | 结果 |
++ | 一元 | varl = -H-var2; | varl 的值是 var2 + 1,var2递増 1 |
— | 一元 | varl = - -var2; | varl 的值是 var2 - 1,var2递减 1 |
++ | *兀 | varl = var2++; | varl的值是var2,var2递增1 |
— | 一元 | varl = var2——; | varl的值是var2,var2递减1 |
这些运算符会改变存储在操作数中的值。
•++总是使操作数加1
•--总是使操作数减1
varl中存储的结果有区别,其原因是运算符的位置决定了它什么时候发挥作用。把运算符放在操作数的前 面,则操作数是在进行任何其他计算前受到运算符的影响;而如果把运算符放在操作数的后面,则操作数是在 完成表达式的计算后受到运算符的影响。
再看一个示例。考虑以下代码:
int varl, var2 = 5, var3 = 6; varl = var2++ * ——var3;
要把什么值赋予varl?在计算表达式前,var3前面的运算符--会起作用,把它的值从6改为5。可以忽略 var2后面的++运算符,因为它是在计算完成后才发挥作用,所以varl的结果是5与5的乘积,即25。 许多情况下,这些简单的一元运算符使用起来非常方便,它们实际上是下述表达式的简写形式:
varl = varl +1;
这类表达式有许多用途,特别适于在循环中使用。
点击加载更多评论>>