c#语句表达式和运算符Word文档下载推荐.docx
- 文档编号:17296849
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:8
- 大小:23.67KB
c#语句表达式和运算符Word文档下载推荐.docx
《c#语句表达式和运算符Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c#语句表达式和运算符Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
C#具有下列类别的语句。
选择语句
if,else,switch,case
迭代语句
do,for,foreach,in,while
跳转语句
break,continue,default,goto,return,yield
异常处理语句
throw,try-catch,try-finally,try-catch-finally
检查和未检查
checked,unchecked
fixed语句
fixed
lock语句
lock
(二)表达式
表达式是可以计算且结果为单个值、对象、方法或命名空间的代码片段。
表达式可以包含文本值、方法调用、运算符及其操作数,或简单名称。
简单名称可以是变量、类型成员、方法参数、命名空间或类型的名称。
表达式可以使用运算符,而运算符又可以将其他表达式用作参数,或者使用方法调用,而方法调用的参数又可以是其他方法调用,因此表达式既可以非常简单,也可以非常复杂。
算术表达式
在一个算术表达式中,算术运算有一定的优先运算顺序。
在求表达式的值时,要按照运算符的优先级别进行计算。
由于乘法、除法运算的优先级别高于加法和减法运算,所以在求算术表达式的结果时,首先要进行乘除运算,然后再进行加减运算。
如果一个表达式中包含连续两个或两个以上级别相同的运算符,则要遵循自左向右的顺序进行运算。
赋值表达式
由赋值运算符将变量和表达式连接起来的式子称为赋值表达式,它的一般格式为:
变量赋值运算符表达式
例如赋值表达式a=15,就是把15这个常数赋值给变量a。
在赋值表达式中,表达式又可以是赋值表达式。
例如:
y=x=8*8+3
这个赋值表达式的值是67。
由于赋值运算符的结合性是自右至左的,所以y=x=8*8+3和y=(x=8*8+3)是等价的。
关系表达式
用关系运算符将两个表达式连接起来的式子称为关系表达式。
关系表达式的值是布尔类型,即真(true)或假(false)。
对关系表达式进行运算,也就是对参加运算的两个操作数进行比较,判断比较的结果是否满足关系运算符所描述的关系。
关系运算符的结合方向为自左向右。
例如:
x=8;
y=6;
z=x>
y+3;
//结果为false
a=x>
y&
&
z;
//结果为false
所有关系运算符的优先级别都高于赋值运算符而低于算术运算符。
逻辑运表达式
用逻辑运算符将关系表达式或者逻辑值连接起来的式子称为逻辑表达式。
逻辑表达式的值应该是一个布尔类型,它只能取true或false。
三个逻辑运算符的运算顺序为“逻辑非”最高,其次是“逻辑与”,最后为“逻辑或”。
例如逻辑表达式:
!
(3>
6)||(5<
8)&
(2>
=9)||(7>
=1)
其结果为true,因为上面的关系式等价于“!
false||true&
false||true”,按照逻辑运算符优先顺序进行运算,得到最后结果为true。
条件表达式
由条件运算符和表达式组成的式子称为条件表达式。
8>
3?
5:
2;
其结果为5,因为8>
3为true,则整个表达式的值为“:
”前面表达式的值,这里是常数5。
多种运算符组成的表达式的运算
在对包含多种运算符表达式求值时,如果有括号,先计算括号里面的表达式。
在运行时各运算符执行的先后级别和结合性确定。
先执行运算优先级别高的运算,然后执行运算优先级别低的。
当运算符两边的运算对象的优先级别一样时,由运算符的结合性来控制运算执行的顺序。
除了赋值运算符,所有的二元运算符都是左结合,即运算按照从左到右的顺序来执行。
赋值运算符和条件运算符是右结合的,即运算按照从右到左的顺序来执行。
例如,表达式3+9+(2+(8-3)*4%3)-5的计算步骤为:
3+9+(2+5*4%3)-5
3+9+(2+20%3)-5
3+9+(2+2)-5
3+9+4-5
12+4-5
16-5
结果为11。
这里乘法和取模运算符、加法和减法运算符的运算级别相同,按照从左向右的顺序计算。
再比如,2>
8?
3<
6?
7:
13的计算步骤为:
2>
(3<
13)
7
得出结果为7。
运算顺序是从右到左的。
(三)运算符
在C#中,运算符是术语或符号,它接受一个或多个称为操作数的表达式作为输入并返回值。
接受一个操作数的运算符被称作一元运算符,例如增量运算符(++)或new。
接受两个操作数的运算符被称作二元运算符,例如算术运算符+、-、*、/。
条件运算符?
:
接受三个操作数,是C#中唯一的三元运算符。
下面的C#语句包含一个一元运算符和一个操作数。
增量运算符++修改操作数y的值:
y++;
下面的C#语句包含两个二元运算符,它们分别有两个操作数。
赋值运算符=将一个整数y和一个表达式2+3作为操作数。
表达式2+3本身包含加运算符,并使用整数值2和3作为操作数:
y=2+3;
操作数可以是任何大小、由任何数量的其他操作组成的有效表达式。
表达式中的运算符按照称为运算符优先级的特定顺序计算。
下表根据运算符执行的操作类型将它们划分到不同的类别中。
类别按优先级顺序列出。
基本
x.y、f(x)、a[x]、x++、x--、new、typeof、checked、unchecked
一元
+、-、!
、~、++x、--x、(T)x
算术--乘法
*,/,%
算术--加法
+,-
移位
<
>
>
关系和类型检测
<
=,>
=,is,as
相等
==,!
=
逻辑(按优先级顺序)
^,|
条件(按优先级顺序)
||,?
赋值
=,+=,-=,*=,/=,%=,&
=,|=,^=,<
当表达式中出现两个具有相同优先级的运算符时,它们根据结合性进行计算。
左结合运算符按从左到右的顺序计算。
例如,x*y/z计算为(x*y)/z。
右结合运算符按从右到左的顺序计算。
赋值运算符和三元运算符(?
)是右结合运算符。
其他所有二元运算符都是左结合运算符。
然而,C#标准没有指定何时执行表达式中的增量指令的“设置”部分。
例如,下面的代码示例的输出为6:
intnum1=5;
num1++;
System.Console.WriteLine(num1);
而下面的代码示例的输出却是未定义的:
intnum2=5;
num2=num2++;
//notrecommended
System.Console.WriteLine(num2);
因此,建议不要使用后一个示例。
可以在表达式两侧使用括号来强制在计算其他任何表达式之前计算该表达式。
例如,2+3*2正常情况下计算为8。
这是因为乘法运算符的优先级高于加法运算符。
将该表达式写为(2+3)*2的形式,结果将是10,因为它指示C#编译器必须在计算乘法运算符*之前计算加法运算符+。
对于自定义的类和结构,您可以更改运算符的行为。
此过程称为运算符重载。
算术运算符:
C#运算符可以分为以下几类:
算术运算符、赋值运算符、关系运算符、逻辑运算符、条件运算符和其他运算符。
注:
当对整数进行“/”运算时,余数都被舍去
例如,10/3在整数除法中等于3。
可以通过模运算符%来获得这个除法的余数。
运算符%可以应用于整数和浮点类型,例如,10%3的结果是1,10.0%3.0的结果也是1。
例:
//%运算符的示例
usingSystem;
classModDemo
{
staticvoidMain()
{intiresult,irem;
doubledresult,drem;
iresult=10/3;
irem=10%3;
dresult=10.0/3.0;
drem=10.0%3.0;
Console.WriteLine("
10/3={0}\t10%3={1}"
iresult,irem);
10.0/3.0={0}\t10.0%3.0={1}"
dresult,drem);
}
}
运行结果
逻辑运算符:
逻辑运算符用于表示两个布尔值之间的逻辑关系,逻辑运算结果是布尔类型。
逻辑非运算的结果是原先的运算结果的逆,即:
如果原先运算结果为false,则经过逻辑非运算后,结果为true;
原先为true则,结果为false。
逻辑与运算含义是,只有两个运算对象都为true,结果才为true;
只要其中有一个是false,结果就为false。
逻辑或运算含义是,只要两个运算对象中有一个是true,结果就为true,只有两个条件均为false,结果才为false。
条件运算符:
条件运算符由“?
”和“:
”组成,条件运算符是一个三元运算符。
条件运算符的一般格式为:
操作数1?
操作数2:
操作数3
其中操作数1的值必须为布尔值。
进行条件运算时,首先判断问号前面的布尔值是true还是false,如果是true,则条件运算表达式的值等于操作数2的值;
如果为false,则条件表达式的值等于操作数3的值。
例如条件表达式“6>
15+a:
39”,由于6>
8的值为false,所以整个表达式的值是39。
关系运算符:
关系运算符用于在程序中比较两个值的大小,关系运算的结果类型是布尔型,也就是说,结果不是true就是false。
一个关系运算符两边的运算对象如果是数值类型,则比较的是两个数的大小;
如果是字符型,则比较的是两个字符的Unicode编码的大小,比如:
字符x的Unicode编码小于y,则关系表达式‘x’<
‘y’的结果为true。
关系运算可以同算术运算混合,C#先求表达式的值,然后将这些值做关系运算。
比如:
3+6>
5-2
(结果是true)
在程序中使用算术运算和关系运算,程序代码如下:
classRelaOpr
{
inta=100;
intx=60;
inty=70;
intb;
b=x+y;
boolj;
j=a>
b;
a>
bis{0}"
j);
运行结果:
bisFalse
赋值运算符:
赋值运算符用于将一个数据赋予一个变量,赋值操作符的左操作数必须是一个变量,赋值结果是将一个新的数值存放在变量所指示的内存空间中。
“=”是简单的赋值运算符,它的作用是将右边的数据赋值给左边的变量。
类
型
符
号
说
明
简单赋值运算符
=
x=1
复合赋值运算符
+=
x+=1等价于x=x+1
-=
x-=1等价于x=x-1
*=1
x*=1等价于x=x*1
/=
x/=1等价于x=x/1
%=
x%=1等价于x=x%1
自增,自减运算符:
C#还有两种特殊的算术运算符:
++(自增运算符)和--(自减运算符),其作用是使变量的值自动增加1或者减少1。
因此x=x+1和x++一样的;
x=x-1和x--是一样的。
自增和自减运算符既可以在操作数前面(前缀),也可以在操作数后在(后缀)。
x=16;
y=++x;
在这种情况下,y被赋值为17,但是,如果代码如下所写:
y=x++;
那么y被赋值为16。
在这两种情况下,x都被赋值为17,不同之处在于发生的时机。
演示自增运算符。
classTest
{intx=2;
inty=x++;
y={0}"
y);
}
输出结果:
y=2
y=4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c# 语句 表达式 运算
![提示](https://static.bdocx.com/images/bang_tan.gif)