1.运算符的概念
运算符指明了进行运算的类型,描述涉及一个或者多个操作符的运算,在进行C#代码编写的时候必不可少要用到运算符,由于多种运算符的使用,先执行哪一个运算符成为了一个问题,这就涉及到运算符的优先级,所以运算符及其优先级是学习编程语言常见的内容。
2.运算符的种类
运算符种类的划分依据就是所需要操作的个数,根据这个可以分为一元运算符(一个操作数),二元运算符(两个操作数),三元运算符(三个操作数)。
3.主要的运算符
3.1算术运算符
算术运算符就是C#语言当中用于运算的操作符,常见的就是+,-,*,/,%,利用这些运算符就可以完成常用的数学计算。
int number1 = 5;
int number2 = 8;
int sum = number1 + number2;
int mul = number1 * number2;
int divide = number1 / number2;
int rem = number1 % number2;
3.2比较运算符(关系运算符)
比较运算符就是用于比较两个操作对象,返回的是布尔类型(true和false)。常用的比较运算符有:<,>,==,!=,<=,>=。
int number1 = Convert.ToInt32(Console.ReadLine());
int number2 = Convert.ToInt32(Console.ReadLine());
if (number1 != number2)
{
Console.WriteLine("输入的两个数不相等");
}
else
Console.WriteLine("输入的两个数相等");
3.3赋值运算符
赋值运算符就是将右边的值赋值给左边的操作数。常用的就是:+=,-=,=,*=,/=,%=,<<=,>>=,&&=,^=,!=(or位操作赋值,不是不等于)。
需要注意的是赋值运算符和比较运算不要用混了,尤其是不要把赋值运算符=用于比较运算符==。
int i=0, j=0, k=0;
int s = 5;
i +=s;
j -= s;
k *= s;
3.4逻辑运算符
逻辑运算符有与(&或者&&),或(||或者|),非(!),异或(^),逻辑运算符的结果是true和false。
与:两个都为真的情况下才为true,有个假即为false;
或:两个都为假的情况下才为false,有一个真即为true;
非:true—false,false—true;
异或:相同为false,不同为true。
string name = "July";
if (name.Length > 0 || name.Contains("u"))
{
Console.WriteLine("Hello");
}
else Console.WriteLine("World");
3.5条件运算符
条件运算符是C#语言当中唯一一个三元运算符,表达式?a(true):b(false)
int a = 7;
int b = 8;
int c;
c = a > b ? a : b;
3.6特殊运算符
比较常用的(),sizeof(确定值得长度),new,移位运算符,逗号运算符。
4.运算符的优先级
类型 | 运算符 |
---|---|
初级运算符 | a++,a- -,new,(),{},typeof ,checked |
一元运算符 | ++a,–a, +a,-a,!a,强制类型转换 |
乘除模运算符 | *,/,% |
加减运算符 | +,- |
移位运算符 | <<,>> |
比较和类型运算符 | <,>,<=,>=,is,as,==,!= |
逻辑与运算符 | & |
异或运算符 | ^ |
逻辑或运算符 | |
条件与运算符 | && |
条件或运算符 | |
条件运算符 | ?: |
赋值运算符 | =,*=,/=,%=,+=,-=,<<=,>>=,&=,^=, |
总结
通常用到运算符的优先级关系:初级运算符(a++或者a–,())>一元运算符(++a,–a,!a,强制类型转换)>算术运算符(乘除取余>加减)>移位运算符>比较运算符>逻辑与>逻辑异或>逻辑非>条件与>条件或>条件运算符>赋值运算符
运算符优先级的题目用得比较多的就是算术运算符与()、自增、自减、赋值运算符的结合计算,一定要先计算优先级最高的,再逐步往下计算。