一、运算符
什么是运算符?
加减乘除这些,能将变量与变量之间连起来进行运算操作的符号
例如 a+b
+ - * /还有一个,叫%
百分号作为运算符是取余数
运算符的分类如下:
-
算术运算符
-
比较运算符
-
逻辑运算符
-
条件运算符
-
赋值运算符
二、表达式
什么是表达式?
能让变量与变量之间进行运算得到结果的表达方式
例如:a=3;
这个就是一个表达式
将a赋值为3
int c=a+b;
这也是一个表达式
将c赋值为a+b的结果
现在我们来看看运算符的分类
三、算术运算符
运算符
|
表达式(int a=5;)
|
b的值
|
+
|
int b=a+2;
|
7
|
-
|
int b=a-2;
|
3
|
*
|
int b=a*2;
|
10
|
/
|
int b=a/2
|
2
|
%
|
int b=a%2
|
5
|
注意一下“/”和“%”
/是除法,但是有一点不一样,在编程中,结果只取整数部分
例如:int a=5;a/2结果只会是2,而不是2.5,只取整数
%是取余数(模),在编程中,结果只得到余数部分
例如:int a=5;a/2结果只会是5,因为5/2=2.5,余数是5
四、赋值运算符
表达式(int a=5;)
|
说明
|
值
|
a+=5;
|
a=a+5;
|
10
|
a-=5;
|
a=a-5;
|
0
|
a*=5;
|
a=a*5;
|
25
|
a/=5;
|
a=a/5;
|
1
|
a%=5;
|
a=a%5;
|
0
|
a+=5就是a=a+5;
意思就是用a去和5做加法运算,然后将结果赋值给a
因此最后a的值被运算出来的值所覆盖,成为新的值
五、比较运算符
运算符
|
名称
|
表达式(a=5;b=1)
|
值
|
>
|
大于
|
a>b
|
true
|
<
|
小于
|
a<5
|
false
|
>=
|
大于等于
|
a>=b
|
true
|
<=
|
小于等于
|
a<=b
|
false
|
==
|
等于
|
a==b
|
false
|
!=
|
不等于
|
a!=b
|
true
|
比较两个变量的值,会返回一个真假,就是true或false
例如:a>b的意思是询问a是不是大于b,因此,回答是,所以结果是true
真:true
假:false
注意
==是等于 !=是不等于
要比较是否相等,必须是双=,因为一个=表示赋值,所以需要两个
!这个是求反,读作“非”,因此!=就是非等于
六、逻辑运算符
运算符
|
名称
|
表达式
|
说明
|
&&
|
和/与
|
a&&b
|
当a和b的条件同时成立时,值才会是true,否则就是false
|
||
|
或
|
a||b
|
当a或b其中一个条件成立,值都是true,
|
!
|
非
|
!a
|
求反,如果是true的变成false
如果是false就变成了true
|
^
|
补位
|
^a
|
这个几乎用不上
|
&&、||和!
这三个只能运用在语句上,是需要进行逻辑判断或运算才起作用。
无法用Console.WriteLine()来输出
设bool a=true;bool b=false;
!符号:求反,非
!a的值就是false,而!b的值就是true
符号&&:和、与
当两个条件同时成立时,值为真,否则为假
设a=true b=false 所以 a&&b 的值就是false
设a=false b=true 所以 a&&b 的值就是false
设a=false b=false 所以 a&&b 的值就是false
设a=true b=true 所以 a&&b 的值就是true
符号||:或
当一个条件成立,值为true
设a=true b=false 所以 a||b 的值就是true
设a=false b=true 所以 a||b 的值就是true
设a=false b=false 所以 a||b 的值就是false
设a=true b=true 所以 a||b 的值就是true
七、条件运算符
? :
表达式 ?true: false s"!}=k d~?X/s J t
X‑
X‑
判断条件? 为真走这里 : 为假走这里
以后会着重介绍
八、++与- -
++叫做递增,就是每次+1
--叫做递减,就是每次-1
a++就可以是a+=1
a—就可以是a-=1
但是没有
a**和a//
a++和++a的区别是什么?
a++是,先进行与a的运算,然后再将a的值+1
++a是,先将a的值+1,然后再与现在的a的值进行运算
简单点的例子
int a=1;
int b=a++;
现在b的值是多少?a的值是多少?
根据刚才的描述,先进行了与a的运算,也就是说,先将值赋给了b,因此b的值就是1,然后,再将a的值+1了,因此a的值是2
换成了
int b=++a;
现在b的值是多少?a的值是多少?
根据刚才的描述,先将a的值+1了,因此a的值是2,然后将这个新值赋给了b,因此b的值也是2
总结
a++是先运算再+1
++a是先+1再运算
再来个例子
int a=1;
a+++a+++a=?
是不是看得头晕了??那么多+号
拆分一下
a++ +a+ ++a这样看的明白吗?
因此最后的值会是多少呢?
现在,我提一个新概念,叫运算值。
就是在运算过程中出现的结果,我称为运算值,而非变量值
所以,一开始运算时就有一个运算值,这个时候应该是0
a++就表示,运算值与a做加法运算,所以最后的结果就是1,这个就成为了新的运算值
而这时,a+1,a的值就是2了
然后有个+a,运算值(1)+a(2)=3,因此新的运算值就是3
下面有一个++a,先给a+1,这时a的值是3了,然后再运算,运算值(3)+a(3)=6
所以最后的结果是6
如果是这样呢?
a++ +a+ a++=?
++a +a+ ++a=?
++a +a+ a++=?
根据上面的例子,分析一下这3个结果是多少呢?
a++ +a+ a++=5
++a +a+ ++a=7
++a +a+ a++=6
九、运算符的优先级
运算符是有优先级的,因为这个优先级才有了刚才为什么是得先++再赋值
顺序
|
运算符
|
1
|
() [] ++ ––
|
2
|
+ - * / % !
|
3
|
< > <= >= == !=
|
4
|
&& ||
|
5
|
? :
|
6
|
= += -= *= /= %=
|
因为++的优先级最高,赋值的优先级最低,所有才形成了,先运算,后赋值
总结
-
算术运算符
-
比较运算符
-
逻辑运算符
-
条件运算符
-
赋值运算符
-
递增、递减
-
运算符优先级
练习题
int a=1;int b=1;求出结果,a的值,b的值
a++ + b++ + ++a + b++=?
a++ + b++ + ++b + a++=?
++a + ++a + ++b + ++b=?
++a + ++b + a++ + b++=?
a++ + ++b + b++ + a++=?
b++ + a++ + a++ + ++b=?
++b + ++b + ++a + ++a=?
转载!//转自fxapi.net论坛老大发布的!!