3.2.4 运算操作
在看了各种类型的变量以后我们来学习如何对各种类型进行运算。运算分数学运算和逻辑运算。通常都会使用各种运算符号(比如+、-、*、/)来进行运算。运算符分为下面几种。
- 一元运算符。处理一个操作数,比如相反数的操作
int a = 10;
int b = -a;
还有递增和递减的操作。int a = 10;
Console.WriteLine(a++); //运算结束后 a=11
Console.WriteLine(++a); //运算结束后 a=12
Console.WriteLine(a--); //运算结束后 a=11
Console.WriteLine(--a); //运算结束后 a=10
“++”操作为操作数+1,“--”操作为操作数-1。操作符放在运算符之前(比如++a)会先进行操作后计算表达式,而操作符放在运算符之后(比如a++)会先计算表达式再进行操作。上面这段代码运算结果是:10,12,12,10。
第三种一元运算符就是布尔取反,使用!对布尔型变量取反。bool bTrue = true;
bool bFalse = !bTrue;
- 二元运算符。处理两个操作数,最常见的二元操作符就是+、-、*、/和%。
double i = 5;
double j = 3;
Console.WriteLine(i + j);
Console.WriteLine(i - j);
Console.WriteLine(i * j);
Console.WriteLine(i / j);
Console.WriteLine(i % j);
有的时候我们会在运算的同时为变量赋值,比如下面这段代码交换了两个数字的值。int i = 5;
int j = 6;
i = i + j;
j = i - j;
i = i - j;
Console.WriteLine("i="+i+",j="+j); //结果为 i=6,j=5
上术代码还等价于下面代码。int i = 5;
int j = 6;
i += j; //等价于 i=i+j
j = i - j;
i -= j; //等价于 i=i- j
Console.WriteLine("i={0},j={1}",i,j); //结果为 i=6,j=5
除了+=、-=、*=、/=、%=以及对应的+、-、*、/、%等数学运算符外还有一些常用的逻辑运算符号。int i = 3;
int j = 4;
Console.WriteLine(i == j); //False
Console.WriteLine(i != j); //True
Console.WriteLine(i > j); //False
Console.WriteLine(i < j); //True
Console.WriteLine(i >= j); //False
Console.WriteLine(i <= j); //True
“==”判断是否相等,相等返回true,否则返回false;“!=”判断是否不相等,不相等返回true,否则返回false。其他操作符也是这样。
还有一种逻辑运算是“逻辑与”和“逻辑或”操作
对于“逻辑与”操作,只有当两个操作数都为true的时候返回结果才是true。
true true true false true false
true false false false false false
对于“逻辑或”操作,两个操作数有任意一个为true就返回true。
true true true false true true
true false true false false false
C#中使用“&&”和“||”来进行逻辑与和逻辑或操作int i = 3;
int j = 4;
Console.WriteLine(i >= 3 && j <= 3); //false
Console.WriteLine(i != 3 || j == 4); //true
- 三元运算符。处理三个操作数。
C#中只有一个三元运算就是条件运算。比如有以下逻辑:bool bGender = true;
string sGender = bGender ? "男" : "女";
Console.WriteLine(sGender);
条件运算符号A?B:C表示,如果A的逻辑是true的话则返回B否则返回C。对于上述代码就是,如果bGender是true的话返回“男”,否则返回“女”。我们再来看下面这段代码。int iNum1 = int.Parse(Console.ReadLine());
int iNum2 = int.Parse(Console.ReadLine());
int iResult = int.Parse(Console.ReadLine());
Console.WriteLine(iNum1 + iNum2 == iResult ? "正确" : "错误");
注:Console.ReadLine()表示从控制台读取一行字符。
我们让用户连续输入三个数字,如果第三个数字为前两个数字的和,则返回“正确”,否则返回“错误”