C程序设计基础 运算符和表达式_第1页
C程序设计基础 运算符和表达式_第2页
C程序设计基础 运算符和表达式_第3页
C程序设计基础 运算符和表达式_第4页
C程序设计基础 运算符和表达式_第5页
已阅读5页,还剩31页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

会计学1C程序设计基础运算符和表达式

表达式由操作数(operand)和运算符(operator)构成,运算符指示对操作数进行什么样的运算。运算符类别运算符基本算术运算+-*/%递增、递减++--位移<<>>逻辑&|^!-&&||赋值=+=-=*=/=%=&=|=^=<<=>>=关系==!=<><=>=字符串串联+成员访问.索引[]转换()条件运算?:第1页/共36页

运算符按所要操作的操作数的数目来分类,又可分为以下3类。(1)一元运算符:一元运算符带1个操作数并使用前缀表示法(如–x)或后缀表示法(如x++)。(2)二元运算符:二元运算符带2个操作数并且全都使用中缀表示法(如x

+

y)。(3)三元运算符:只有一个三元运算符?:,它带3个操作数并使用中缀表示法(c?

x:

y)。第2页/共36页4.1算术运算符4.1.1基本算术运算符1.

+

:加法运算符或正值运算符2.

-

:减法运算符或负值运算符3.

*

:乘法运算符4.

/

:除法运算符除法运算符用于进行除法运算,如5/6。需要注意的是如果除数和被除数都为整数,则结果也为整数,它会把小数舍去(并非四舍五入)。5.

%

:模运算符模运算符用于计算第2个操作数除第1个操作数后的余数。在C#中,所有数值类型都具有预定义的模数运算符。如:5%2的结果为1-5%2的结果为-15.0%2.2的结果为0.6,结果为double值5.0m%2.2m的结果为0.6,结果为decimal值。第3页/共36页4.1算术运算符4.1.2递增、递减运算符

递增(++)、递减(--)运算符是一元运算符,它们的作用是使变量的值增加1或减少1。无论++i和i++都相当于执行i=i+1,但执行的顺序会有所不同。第4页/共36页4.1算术运算符4.1.3位移运算符1.<<

左移运算符

左移运算符是一个二元运算符,用于位运算,作用是将第1个操作数向左移动第2个操作数指定的位数。第2个操作数的类型必须是int。2.>>

右移运算符

右移运算符和左移运算符类似,它的作用是将第1个操作数向右移动第2个操作数所指定的位数。第2个操作数的类型必须是int。运行位运算器安装Silverlight3.0第5页/共36页4.2逻辑运算符1.&:逻辑与(逻辑AND)运算符

逻辑与运算符可以用于整型和布尔型数值。对于整型操作数,&

计算操作数的逻辑按位“与”。对于bool操作数,&

计算操作数的逻辑“与”。第6页/共36页4.2逻辑运算符1.&:逻辑与(逻辑AND)运算符(1)当操作数为bool值时,当且仅当2个操作数均为true时,结果才为true。 true&true的结果为truetrue&false的结果为falsefalse&false的结果为false(2)当操作数为整型时,则进行位运算,如:100&45的结果为36。运行位运算器第7页/共36页4.2逻辑运算符2.|:逻辑或(逻辑OR)运算符

|

逻辑或运算符可以用于整型和布尔型数值。对于整型操作数,|

计算操作数的逻辑按位“或”。对于bool操作数,|

计算操作数的逻辑“或”。第8页/共36页4.2逻辑运算符2.|:逻辑或(逻辑OR)运算符(1)当操作数为bool值时,当且仅当2个操作数均为false时,结果才为false,或者说只要有1个操作数为true,结果就为true。true&true的结果为truetrue&false的结果为truefalse&false的结果为false(2)当操作数为整型时,则进行位运算,如:100|45的结果为109运行位运算器第9页/共36页4.2逻辑运算符3.^:逻辑异或(逻辑XOR)运算符

^

逻辑异或运算符可用于整型和bool型数值。对于整型,^

将计算操作数的按位“异或”。对于bool操作数,^

将计算操作数的逻辑“异或”。第10页/共36页4.2逻辑运算符3.^:逻辑异或(逻辑XOR)运算符(1)当操作数为bool值时,当且仅当只有一个操作数为true时,结果才为true。或者说2个操作数相同时结果为false,2个操作数不同时结果为true。true^true的结果为falsetrue^false的结果为truefalse^false的结果为false(2)当操作数为整型时,则进行位运算,如:100^45的结果为73。运行位运算器第11页/共36页4.2逻辑运算符4.!:逻辑非(逻辑NOT)运算符

!逻辑非运算符只能用于bool型数值,它是对操作数求反的一元运算符。当操作数为false时返回true。当操作数为true时,返回false。!false的结果为true!true的结果为false运行位运算器第12页/共36页4.2逻辑运算符5.~:逻辑非(逻辑NOT)运算符

~求补运算符和!逻辑非运算符功能相似,可以视为是!逻辑非运算符的整型版。~求补运算符只能用于整型数值,它对操作数执行按位求补运算,其效果相当于反转每一位。运行位运算器第13页/共36页4.2逻辑运算符6.&&:条件与(条件AND)运算符

&&条件与运算符只能用于bool型数值,它与&

运算符的功能完全一样,执行其bool操作数的逻辑“与”运算。true&&true的结果为truetrue&&false的结果为falsefalse&&false的结果为false&&

运算符与&

运算符的区别在于,&&

运算符不能对整型进行计算。另外,对于x&&y如果x为false,则不计算y(因为不论y为何值,“与”操作的结果都为false)。这被称为“短路”计算。也就是说使用&&运算符进行条件计算,比使用&运算符速度更快些。第14页/共36页4.2逻辑运算符7.||:条件或(条件OR)运算符

||

运算符和&&运算符一样,只能用于bool型数值,它与|

运算符的功能完全一样,执行其bool操作数的逻辑“或”运算。true||true的结果为truetrue||false的结果为truefalse||false的结果为false

||

运算符与|

运算符的区别在于,||

运算符不能对整型进行计算。另外它也会进行“短路”计算,即对于x&&y,如果x为true,则不计算y(因为不论y为何值,“或”操作的结果都为true)。第15页/共36页4.3赋值运算符和表达式4.3.1复合赋值运算符

一方面,为了简化程序,使程序看上去精练;另一方面,为了提高编译效率,C#允许使用复合赋值运算符。在赋值运算符前面加上其他运算符,就可以构成复合赋值运算符。如果在=前加一个+运算符,就成为复合赋值运算符+=。例如,可以有:a+=10等价于a=a+10x*=y+6等价于x=x*(y+6)x%=5等价于x=x%5第16页/共36页4.3赋值运算符和表达式4.3.1复合赋值运算符(1)a+=b(其中a为变量,b为表达式)(2)a+=b(将有下画线的a+移到=号右侧)(3)a=a+b(在=号左侧补上变量名)第17页/共36页4.3赋值运算符和表达式4.3.1复合赋值运算符C#语言规定可以使用10种复合赋值运算符。(1)+= :加法赋值运算符。(2)-= :减法赋值运算符。(3)*= :乘法赋值运算符。(4)/= :除法赋值运算符。(5)%= :取模赋值运算符。(6)&= :与赋值运算符。(7)|= :或赋值运算符。(8)^= :异或赋值运算符。(9)<<= :左移赋值运算符。(10)>>= :右移赋值运算符。第18页/共36页4.3赋值运算符和表达式4.3.2赋值表达式

由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。它的一般形式为:<变量><赋值运算符><表达式>第19页/共36页4.4关系运算符和关系表达式

“关系运算”实际上是“比较运算”,将两个值进行比较,判断比较的结果是否符合给定的条件。例如,x>5是一个关系表达式,大于号“>”是一个关系运算符,如果x的值为6,则满足给定的x>5的条件,因此关系表达式的值为“真”(true);如果a的值为3,不满足x>5的条件,则称关系表达式的值为“假”(false)。第20页/共36页4.4关系运算符和关系表达式4.4.1关系运算符C#语言规定可以使用以下6种关系运算符。

(1)==等于

(2)!=不等于

(3)<小于

(4)>大于

(5)<=小于或等于

(6)>=大于或等于第21页/共36页4.4关系运算符和关系表达式4.4.2关系表达式

用关系运算符将2个表达式连接起来的式子,称为关系表达式。例如:a>3a*b>=c+d(a=6)>(b=7)'a'!='b''a'>3

关系表达式的值是一个bool值(或者说关系表达式返回一个bool值),即true或false。例如,关系表达式6==2的值为false6>=0的值为true第22页/共36页4.5字符和字符串运算符

由于字符可以隐式转换为整型(字符的Unicode编码值),很多时候,字符会被当做一个整型数值来处理。比如:'a'+6的结果为103,字符a被隐式转换为97,再与103相加'a'*'b'的结果为9506,相当于97*98'a'>'b'的结果为false第23页/共36页4.5字符和字符串运算符

在C#中,加法运算符(+)又可以作为字符串串联运算符,在字符串运算中,它起到了连接字符串的作用。"a"+"b"的结果为"ab""早上"+"好!"的结果为"早上好!"

字符在跟字符串进行加法运算时,也会被转换为字符串进行处理,例如:

'a'+"bcdef"的结果为"abcdef",由于"+"运算符可以用于字符串操作,所以'a'首先被隐式转换为字符串"a",再与字符串"abcdef"进行连接操作。第24页/共36页4.6其他运算符1.点运算符

点运算符.用于成员访问。点运算符指定类型或命名空间的成员。

txtName.Text="张三";//让文本框内显示“张三”这两个字stringstr=txtName.Text;//把Text属性的值赋给字符串变量str第25页/共36页4.6其他运算符2.索引运算符

索引运算符[]用于数组、索引器,表示按[]内指定的索引去访问数组或索引器中的相应元素的内容。数组将在第7章进行讲述。第26页/共36页4.6其他运算符3.转换运算符

转换运算符()除了用于指定表达式中的运算顺序外,圆括号还用于指定强制转换或类型转换,例如:x+(y+z)

把y+z用圆括号括起来表示先执行y+z。(int)12.3

表示把Double类型的值12.3强制转换为整型,结果为12。(char)97

表示把整数值97强制转换为字符类型,结果为a。第27页/共36页4.6其他运算符4.条件运算符

条件运算符

?:根据布尔型表达式的值返回两个值中的一个。条件运算符要求有3个操作对象,它是C#中唯一的一个三元运算符,格式如右。

条件?表达式1:表达式2falsetrue第28页/共36页4.7运算符优先级

当表达式包含多个运算符时,运算符的优先级控制各运算符的计算顺序。例如,表达式x

+

y

*

z按x

+

(y

*

z)计算,显然*运算符的优先级比+运算符高。高第29页/共36页4.7运算符优先级高类别计算顺序运算符基本

高低x.yf(x)a[x]x++x--一元+-!~++x--x(T)x乘除*/%加减+-位移<<>>关系<><=>=相等==!=逻辑AND&逻辑XOR^逻辑OR|条件AND&&条件OR||条件?:赋值=*=/=%=+=-=<<=>>=&=^=|=第30页/共36页4.7运算符优先级4.7.1算术运算符优先级

自学,不做要求。第31页/共36页4.7运算符优先级4.7.2关系运算符优先级关系运算符的优先级总结出如下几点。(1)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论