Keep on going never give up.

Let's Go

C# 学习笔记(5)运算符和表达式

C#Lonely2019-04-26 17:14:4240次0条

(一)、运算符

什么是运算符?运算符是一种告诉编译器执行特定的数学或逻辑操作的符号,是用于操作一个或多个操作数的程序元素。C# 有丰富的内置运算符,分类如下:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符及其他运算符。接受一个操作数的运算符称为一元运算符,如增量运算符(++)、和减量运算符(--);接受两个操作数的运算符称为二元运算符,如算数运算符(+-*/);接受3个操作数的运算符称为三元运算符(也叫三目运算符),如条件运算符(?:)接受三个操作数,它是C#中唯一的三元运算符。


代码示例:(注意:在同一作用域中,两个变量不能够重名。这里仅供示例,每条分割线代表不同作用域)

//----------(      赋值运算符=     )----------
int num = 10;
num = 20; //变量可以重复赋值,一旦给一个变量赋了新值,那么变量中的老值便不复存在了;
Console.WriteLine(num); //此时num为20
Console.ReadKey();

//----------(      ++ :自加1     )----------
int a= 10;
int b;
b= a++; //b=10,a=11,先用后加
b= ++a; //b= 12,a= 12,先加后用

//----------(      -- :自减1     )----------
int a= 10;
int b;
b= a--; //b=10,a=9,先用后减
b= --a; //b= 8,a= 8,先加后减

//----------(      +=     )----------
int a = 10;
int b = 8;
a += b; // a = a + b;  a结果为18

//----------(      -=     )----------
int a = 10;
int b = 8;
a -= b; // a = a - b;  a结果为2

//----------(      *=     )----------
int a = 10;
int b = 8;
a *= b; // a = a * b;  a结果为80

//----------(      /=     )----------
int a = 10;
int b = 8;
a /= b; // a = a / b;  a结果为1.25

//----------(      %=     )----------
// %取余(取模),用于取余数(两个整数相除的余数)
int a = 10;
int b = 8;
a %= b; // a = a % b;  a结果为2

//----------(     关系运算符    )----------
bool mybool;
int a = 10;
int b = 20;
mybool = a > b;  //如果大于返回true,如果小于返回false;             此时mybool为false
mybool = a < b;  //如果大于返回true,如果小于返回false;             此时mybool为true
mybool = a >= b; //如果大于等于返回true,否则false;               此时mybool为false
mybool = a <= b; //如果小于等于返回true,否则false;               此时mybool为true
mybool = a != b; //如果不等于返回true,否则false;     不等于符号是!=;   此时mybool为true
mybool = a == b; //如果等于返回true,否则false;       等于符号是==;   此时mybool为false

//----------(     逻辑或运算符    )----------
//“逻辑或”相当于生活中的“或者”,当两个条件中有任一个条件满足,“逻辑或”的运算结果就为“真”
bool b1 = true;
bool b2 = false;
Console.WriteLine(b1 || b2 ); //或||,有一个true,结果true ,否则false ;运算符前一个操作数为true值时,不再执行后一个操作数的内容;此时输出了true

//----------(     逻辑与运算符    )----------
//“逻辑与”相当于生活中说的“并且”,就是两个条件都同时成立的情况下“逻辑与”的运算结果才为“真”。
bool b1 = true;
bool b2 = false;
Console.WriteLine(b1 && b2 ); // 与&&;同时为true时,结果为true;否则false; 此时输出了false

//----------(     逻辑非运算符    )----------
//“逻辑非”值取反,即取值的反值。
bool b1 = true;
Console.WriteLine(!b1); // !非;b1为true时,则false; 此时输出了false

//----------(     位逻辑异或运算符    )----------
bool b1 = true;
bool b2 = false;
Console.WriteLine(b1 ^ b2 ); // ^有且只有一个;有且只有一个结果为true时则为true,否则false; 此时输出了true

//----------(     is运算符    )----------
//is运算符用于动态检查对象的运行时类型是否与给定的类型兼容(一致);
//is运算符:检查对象是不是给定类型,或者是否可以转换为给定类型,如果是,这个运算符就返回True.
var str = "我是字符串";
bool mybool = str is string;
Console.WriteLine(mybool); //输出true


(二)运算符的优先级

运算符接受的操作数可以是一个表达式,也可以是多个表达式的组合。在包含多个运算符的表达式中,运算符符优先级决定着表达式的意义和最终取值。

例如:int num =20 - 5 * 2; 由于乘法的优先级更高,因此程序会先执行乘法再执行减法,所以num的结果为10。

下图列出了运算符的优先级顺序:优先级从上到下依次递减,最上面具有最高的优先级。同级运算符的运算顺序取决与运算符的结合顺序,只有三个优先级是从右到左结合的,它们是一元运算符、条件运算符、赋值运算符。其他运算符都是从左到右结合。如:a+b+c表达式是按照(a+b)+c的顺序进行计算。

image.png


(三)、表达式

表达式是由一个或者多个操作数以及零个或零个以上的运算符组成的序列,通过计算表达式,就可以得到一个值,对象或方法的结果。表达式中可以包含文本值、方法调用、运算符及其操作数,以及简单名称。简单名称可以是变量、类型成员、方法参数、命名空间或类型名称等。

从表达式的定义可以看出,简单的文本也可以成为表达式,例如:string str = "hello"; 其中"hello"就是最简单的文本值,同样它也是一个表达式。



暗锚,解决锚点偏移

文章评论

    嘿,来试试登录吧!