《C#程序设计》课件第4章运算符与语句_第1页
《C#程序设计》课件第4章运算符与语句_第2页
《C#程序设计》课件第4章运算符与语句_第3页
《C#程序设计》课件第4章运算符与语句_第4页
《C#程序设计》课件第4章运算符与语句_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

运算符与语句思政目标:

☞加强动手能力,培养实事求是、严谨的学习态度

☞认真修改并测试程序代码,树立新时期下的程序员精神技能要求:

☞熟练掌握程序各种语句

☞掌握C#中的运算符实践目标:

☞根据所学的示例,能够自己实现一个简单程序

☞熟练掌握语句,能够在不同条件下正确使用第4章运算符运算符的优先级流程控制语句运算符运算符是用来标明数值或表达式运算规则的一种符号标记,它所操作的数值称为操作数。01PART表达式就是由运算符和操作数组合而成。根据操作数的个数,运算符可以分为一元运算符、二元运算符和三元运算符。运算符例如,取负(-)、取反(~)、自增(++)和自减(--)都是典型的一元运算符;而四则运算符(+、—、*、/)则是典型的二元运算符;三元运算符仅有一个,那就是条件运算符(?:),可以用来改写简单的if结构语句。运算符算术运算符运算符运算符说明示例+加ints=2012+2015;inti=0,j=1;intk=i+j;—减ints=2012-2015;inti=0,j=1;intk=i-j;*乘ints=2012*2015;inti=0,j=1;intk=i*j;/除ints=2012/15;inti=2020,j=10;intk=i/j;%取模ints=2012%15;inti=2020,j=10;intk=i%j;++自增1inti=2012;intj=i++,k=++i;--自减1inti=2015;intj=i--,k=--i;整型数据的除法运算与数学中的运算略有差别。整数相除时没有问题,两个整数相除时,其结果仍然是整数。运算符算术运算符只要参与运算的操作数中有一个是浮点型,则其作除法的结果也是浮点型。可以对比整数相除时的结果运算符算术运算符此外,还需要特别强调取模运算符(%)。它是用于计算两个操作数相除的余数,其结果为一个非负整数,即使对于非整数除法而言也是如此应注意的是,如果运算结果超过了变量类型的上限,就会造成溢出,所以要学会选用合适的数据类型进行数值计算。运算符算术运算符关系运算符运算符运算符说明运算符说明==等于<小于!=不等于<=小于或等于>大于>=大于或等于关系运算符的运算结果是布尔值,要么为true,要么为false。关系运算符用于比较两个操作数的大小关系,值是比较的结果==与=表示含义并不相同,前者表示相等,后者表示赋值运算符关系运算符赋值运算符运算符运算符说明运算符说明=赋值<<=左移赋值+=加法赋值>>=右移赋值-=减法赋值&=and位操作赋值*=乘法赋值|=or位操作赋值/=除法赋值^=xor位操作赋值%=取模赋值赋值运算符是将右操作数赋给左操作数,赋值后,不仅左操作获得了这个数,整个表达式的结果也获得了这个数。根据这个特点,可以采取串联赋值方式一次给多个变量赋相同的值,进而简化编码过程运算符赋值运算符逻辑运算符运算符运算类型值x&yx和y同时为1时,结果为1,其他情况结果均为0x|yx和y任一个为1时,结果为1,同时为0时结果为0x^yx和y同为0或1时,结果为0,x和y的取值不同时结果为1~Xx为0时结果为1,x为1时结果为0逻辑运算符有&、|、!、^、~、&&、||。其中,&和|执行按位的“与”和“或”,而~和^执行按位的“非”和“异或”。&&和||执行布尔的“与”和“或”,而!执行布尔的“非”。另外,要注意区分位运算和布尔运算。运算符逻辑运算符运算类型值x&yx和y同时为1时,结果为1,其他情况结果均为0x|yx和y任一个为1时,结果为1,同时为0时结果为0x^yx和y同为0或1时,结果为0,x和y的取值不同时结果为1~Xx为0时结果为1,x为1时结果为0将运算数据相应的二进制数据进行的计算即为位运算运算符逻辑运算符运算类型值x&&yx和y同时为true时,结果为true;其他情况结果均为falsex||yx和y任一个为true时,结果为true;同时为false时,结果为false;!xx为true,结果为false;x为false时,结果为true布尔值的逻辑运算结果第一个条件x==1不成立,而第二个条件y==3成立,因为x==1与y==3并不同时为true,所以进行“与”运算的最后结果是false,因此,布尔型的result返回值是false。条件运算符运算符条件运算符是一个三元运算符,由“?”和“:”组成,以条件运算符构成的表达式称为条件表达式。其一般格式如下:操作数1?操作数2:操作数3操作数1的值必须为布尔值。进行条件运算之前,需要先对问号前面的布尔值进行判断,判断其为true还是false。若结果为true,则条件表达式的值等于操作数2的值;若结果为false,则条件表达式的值等于操作数3的值。位运算符运算符位运算符表示对运算对象进行的位运算,可分为按位运算(&、|、~、^)和移位运算(>>、<<)两类,除按位取反运算符(~)为一元运算符外,其他均为二元运算符。位运算的本质是逻辑运算。运算符说明运算符说明&and(与)|or(或)~取反^xor(异或)>>右移位<<左移位位运算符运算符位逻辑与运算将两个运算对象按位进行与运算。与运算的规则:1&1=1,1&0=0,0&1=0,0&0=0按位与运算符&10110000

注:首行和首列表示操作数,其他表示运算结果。位运算符运算符位逻辑或运算将两个运算对象按位进行或运算。或运算的规则是:1|1=1,1|0=1,0|0=0,0|1=1。例如,10010001(二进制)|11110000(二进制)等于11110001(二进制)按位或运算规则

注:首行和首列表示操作数,其他表示运算结果。|10111010位运算符运算符位逻辑取反运算只需一个运算对象,是单目运算符。位逻辑取反运算按位对运算对象的值进行取反运算,即如果某一位等于1,就将其转换为0;如果某一位等于0,就将其转换为1。例如,对二进制的10010001进行位逻辑取反运算,结果等于01101110;对二进制的01010101进行位逻辑取反运算,结果等于10101010。按位取反运算规则

注:首行和首列表示操作数,其他表示运算结果。10~01位运算符运算符位逻辑异或运算将两个运算对象按位进行异或运算。异或运算的规则是,1^1=0,1^0=1,0^0=0,0^1=1,即相同得0,相异得1。例如,10010001(二进制)^11110000(二进制)=01100001(二进制)。按位异或运算规则

注:首行和首列表示操作数,其他表示运算结果。^10101010位运算符运算符位右移运算将整个数按位右移若干位,右移后空出的部分填0。例如,8位的byte型变量bytei=0x65(即十进制101)将其右移3位:i>>3的结果是0x0C(十进制12)。位运算符运算符位左移运算将整个数按位左移若干位,左移后空出的部分补0。例如,8位的byte型变量bytei=0x65(即十进制是101),将其左移3位:i<<3的结果是0x28(即十进制是40)010203自增运算符(++)和自减运算符(--)的使用频率相对较高,它们都具有两种形式:前缀和后缀前缀自增便是++在操作符前面,如++i;后缀自增便是++在操作符后面,如i++。两者都是实现i递增1,即i=i+1。以++i为例,前缀自增的计算方式是:直接将i=i+1,并将和值返回。以i++为例,后缀自增的计算方式是:先将i的初值返回,再完成i=i+1。运算符自增自减运算符初看此结果,或许会认为i没有被递增,其实i已经被递增。根据上述计算方式,将i++输出时,先将i的原值12返回,交给Console.WriteLine进行输出,所以输出12,这之后才完成递增,而++j则将j由12递增为13,然后才返回并交给Console.WriteLine进行输出,故输出13。运算符从上面的叙述可以推测,若再增加一次i的输出,将会输出13,表示i的确已经被递增了运算符自增与自减运算一般用于整型数据类型变量,事实上,除用在整型数据类型变量外,这两种运算方式同样可以用在其他数据类型上面,如浮点类型运算符的优先级02PART常见运算符的优先级运算符的优先级运算符类型运算符初级运算符(),[],x.y,++(后缀),--(后缀),new,sizeof,typeof,checked/unchecked一元运算符!,~,++(前缀),--(前缀),(T)x乘除、取模运算符*,/,%增量运算符+,-移位运算符<<,>>关系运算符<,>,<=,>=,is,as等式运算符==,!=逻辑与运算符&逻辑异或运算符^逻辑或运算符|条件与运算符&&条件或运算符||条件运算符?:赋值运算符=,*=,/=,+=,-=,<<=,>>=,&=,^=,|=,%=流程控制语句03PARTif-else语句if语句是最常见的程序流程控制语句,它可以配合else或者elseif来无限扩展选择执行的分支。if语句的使用形式有如下四种,但无论采用哪种方式,无论产生多少分支,最终,也只有一个分支能够得以运行。(1)一个分支:if(条件){语句序列;}。(2)两个分支:if(条件){语句序列;}else{语句序列;}。(3)多分支:if(条件){语句序列;}elseif{语句序列;}…else{语句序列;}。(4)嵌套:if(条件){if语句序列;}else{if语句序列;}。其执行机制是:先对各个条件进行判断,然后执行成立条件的分支所对应的语句序列,若没有条件成立,则直接执行整个if块后的语句。流程控制语句流程控制语句若根据要求输入“男”,程序自然能够成功运行,此时输出为“先生,你好!”。若用户输入除“男”外的其他内容,则上面的程序都将把客户视为女性,输出结果自然不符合要求,流程控制语句修改程序如下switch语句switch语句与if语句类似,也是在众多分支中选择一个匹配的分支来执行其执行机制是:根据表达式的值,在各个case中寻找相匹配的,若找到,则执行相应的语句序列直到遇到break,若没有,则在default分支存在的情况下,执行default分支。使用switch时需要注意如下事项。(1)switch表达式的值只能是整型(byte、short、int、char等)、字符串或枚举(枚举可以视为整型的特例)。(2)单个case下不能缺少break,但几个case共用一段语句序列时,可以省略break。(3)switch语句同if语句一样,可以嵌套。流程控制语句流程控制语句实例程序流程控制语句case对应的语句块相同时,可以省略break。例如,上面根据用户输入的性别的示例,若用户输入“男”或“女”,程序输出“您好”,否则输出“错误信息”。两种合法性别对应的case块,共用一个输出for语句for语句是最常使用的循环语句,特点是使用方式的灵活for(初始化语句;条件测试语句;迭代语句){

循环语句序列//循环体,该处的语句序列会被反复执行至循环结束}流程控制语句初始化语句多用于给循环变量赋初值(循环变量多指计数器);条件测试语句多用于判断循环是否需要继续执行,为true时继续,否则不再继续;迭代语句多用于实现对循环变量值的更改,该更改使得循环变量的值向使循环结束的趋势变化。流程控制语句其执行机制是:首先,执行初始化语句;其次,执行条件测试语句,当条件测试语句返回true时,接着执行循环语句序列;最后,执行迭代语句,这是第一次循环的过程,除第一次循环,其他时刻不再执行初始化语句。从第二次循环开始,每次首先执行条件测试语句,成立则执行循环语句序列,再执行迭代语句,然后又进入下一轮循环的条件测试语句判断,直至该语句不成立时,整个循环方才结束。迭代语句除了使用自增表达式外,也可用其他方式流程控制语句for循环的变体很多这两个示例,第一个取消了迭代语句部分,第二个将初始化语句部分和迭代部分都取消了,程序仍可以正常运行,但如果将3个部分都取消,只留下循环语句序列部分,则程序会构成一个死循环流程控制语句当循环变量仅仅用于循环计数时,不可使用下面的写法最好方式是将循环变量i的作用域限制在for循环的结构内部for语句的一般形式,也可以改写为while语句。其对应的初始化语句while语句while语句一般形式while(条件表达式){

循环语句序列;}其执行机制是:首先执行条件表达式,若为真则执行循环语句序列,接着再执行条件表达式,直到条件表达式不成立退出循环为止,继而执行循环体之外的语句。当条件表达式第一次就不成立时,此时循环语句序列不会获得任何执行机会。流程控制语句初始化语句多用于给循环变量赋初值(循环变量多指计数器);条件测试语句多用于判断循环是否需要继续执行,为true时继续,否则不再继续;迭代语句多用于实现对循环变量值的更改,该更改使得循环变量的值向使循环结束的趋势变化。流程控制语句用100以内的奇数等差数列为例进行说明do-while语句do-while语句与while语句基本一样do{

循环语句序列;}while(条件表达式)其执行机制是:首先执行循环语句序列,然后执行条件表达式,若为真则接着执行循环语句序列,接着再执行条件表达式,直到条件表达式不成立退出循环而执行循环之外的语句。从其执行机制可以看出,do-while与while的区别在于,do-while语句中的循环语句序列至少会获得一次执行机会。流程控制语句流程控制语句用100以内的奇数等差数列为例进行说明

温馨提示

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

评论

0/150

提交评论