收藏 分销(赏)

主要针对C语言的语句部分.ppt

上传人:pc****0 文档编号:13237543 上传时间:2026-02-08 格式:PPT 页数:16 大小:124KB 下载积分:10 金币
下载 相关 举报
主要针对C语言的语句部分.ppt_第1页
第1页 / 共16页
主要针对C语言的语句部分.ppt_第2页
第2页 / 共16页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,主要针对,C,语言的语句部分,关系运算符和关系表达式,1.,关系运算符及其优先次序:,(,小于,),(大于),=,(大于或等于),=,(等于),!,=,(不等于),优先级相同(高),优先级相同(低),算术运算符,关系运算符,赋值运算符,关系运算符的结果只有,0,和,1,两种,即为逻辑值。,选择结构程序设计,逻辑运算符和逻辑表达式,1.,用逻辑运算符将关系表达式或逻辑量连接起来的式子就是,逻辑表达式。,2.,逻辑运算符及其优先次序:,(,1,),&,逻辑与,(,2,),|,逻辑或,(,3,)!逻辑非,“,&”,和“,|”,是“双元(目)运算符”,它要求有两个运算量(操作数)。如(,a,b)&(x,y),“!”,是一元运算符,只要求有一个运算量。如,!,(,ab),3.,逻辑运算符的优先次序:,(,1,),!,&,|,(,2,),!,算术运算符,关系运算符,&,和,|,赋值运算符,4.,逻辑表达式的值将一个非,0,的数值认作为“真”,5.,例如:,53&83”,(因为关系运算符优于,&,)的结果“,1”,;再处理,“,1&84-,!,0”,(由于“,”,优于“,&”,)所以先处理,“,84-!0”,现在,4,的左边为“,”,,右边为“,-”,,由于(算术运算符优于关系运算符)所以先处理“,4-,!,0”,由于“!”的等级最高,故先算“!”也即是“,4-1”=3,;,再进行“,8b),max=a;,else,max=b,;,当,ab,时将,a,的值赋给,max,,当,ab,是否满足,都相同一个变量赋值。可以用下面的条件运算符来处理。,max=(ab)?,a:b,;,其中“(,a,b)?a:b,”,是一个“条件表达式”,它的执行过程:若(,ab),条件为真,则条件表达式取,a,,否则取值,b.,条件运算符要求有,3,个操作对象,称三目运算符。,条件表达式的一般形式:,表达式,1,?表达式,2,:表达式,3,表达式,1,条件表达式去,表达式,2,的值,条件表达式去,表达式,3,的值,假,(0),真(非,0,),(,1,)条件运算符的优先级优于赋值运算符,但是比关系运算符和算术运算符都低。,(,2,)条件运算符的结合方向是,“自右至左”,例如:,a,b?a:c,d?c:d,若,a=1,b=2,c=3,d=4,则先算(,c,d)?c:d,结果:,d=4,再算(,ab)?a:4,结果:,d=4,条件表达式还可以写成以下形式:,ab?(a=100),:b=100),或,ab?,printf(“%d”,a,):,printf(“%d”,b,),即表达式,2,和表达式,3,不仅可以是数值表达式,还可以赋值表达式或函数表达式。,例:输入一个字符,判别它是否大写字母,若是,将它转换成小写字母;若不是,不转换。然后输出最后得到的字符。,Main(),char c1;,scanf(“%c”,c1=(c1=A,printf(“%c”,c1);,If,语句,If,语句的三种形式:,(,1,),if(,表达式)语句,例如:,if(x,y)printf(“%d”,x,);,表达式,假(,0,),语句,真(非,0,),(,2,),if(,表达式)语句,1 else,语句,2,例如:,if(x,y),printf(“%d”,x,);,esle,printf(“%d”,y,);,表达式,语句,2,语句,1,假,真,(,3,),if,(表达式)语句,1,else if(,表达式,2,)语句,2,else if(,表达式,3,)语句,3,.,else if(,表达式,m),语句,m,else,语句,n,说明,:,(1)3,种形式的,if,后面都有表达式,一般为逻辑表达式或关系表达式。在执行,if,语句时先对表达式求解。若表达式为真,则执行后面的语句。若为假则执行,else,后的语句。,(,2,)第二、三种形式的,if,语句中,在每个,else,前面有一分号,整个语句结束处有一个分号。,Switch,语句,1.Switch,语句是多分支选择语句。而,if,语句只有两个分支选择。,2.Switch,的一般形式:,switch(,表达式),case,常量表达式,1,:语句,1,case,常量表达式,2,:语句,2,case,常量表达式,n,:语句,n,default:,语句,n+1,.,3.Switch,后面括号内的表达式,,ANSI,标准允许它为任何类型。,4.,当表达式的值与某一个,case,后面的常量表达式相等,就执行此,case,后面的语句,若所有的,case,后面的表达式都没有与表达式相等,就执行,defaulth,后面的语句。,5.,每一个,case,的常量表达式的值必须互不相同。,6.,各个,case,和,default,得出现次序不影响执行结果。,7.,在执行,switch,语句时,根据,switch,后面表达式的值找到匹配的入口标号,就继续执行下去,不再进行判断。,例如:,Switch(grade,),case,A:printf,(”,85100n”);,case,B:printf,(“,7084n”);,case,C:printf,(“,6069n”);,case,D:printf,(”,60n”);,default:,printf,(“errorn”);,输出结果:,85100,7084,6069,90,error,为了解决这一问题,即在执行一个,case,分支后,使流程跳出,switch,结构。,可以用一个,break,语句来达到此目的。,例如:,Switch(grade,),case,A:printf,(”,85100n”);break;,case,B:printf,(“,7084n”);break;,case,C:printf,(“,6069n”);break;,case,D:printf,(”,60n”);break;,default:,printf,(“errorn”);,最后一个分支可以不加,break,语句。如果,grade,的值为,B,,则只输出“,7084”,,,goto,语句以及用,goto,语句构成的循环,循环控制,1.goto,语句为无条件转向语句,它的一般形式:,goto,语句标号,;,语句标号用标识符表示,它的定名规则与变量名相同,即由字母、数字和下划线组成,第一个字符必须为字母或下划线。不能用整数来作标号。,例如:,goto,label_1;,2.,结构化程序设计方法主张限制使用,goto,语句,因为滥用,goto,语句将使程序流程无规律、可读性差。,3.,goto,语句的两个用途:,(,1,)与,if,语句一起使用,构成循环结构。,(,2),从循环体中调到循环体外。,但可以用,break,和,continue,跳出本层循环和结束本次循环。故使用机会少。,例题:,用,If,语句和,goto,语句构成循环,求,1+2+3+,+100,;,main(),int,i,sum,;,i=1;,loop:if(i,=100),sum=,sum+i,;,i+;,goto,loop;,while,语句,1.while,语句是用来实现“当型”循环结构的。,其表达式:,while(,表达式,),循环语句,功能:当表达式的值为“真”时,执行循环体语句。,2.,例题:计算,1+2+3+100,;,main(),int,a,sum,;,sum=0;a=1;,while(a,=100),sum=,sum+a,;,a+;,printf(“%d”,sum,);,3.,使用,while,语句需注意的几点:,(,1,)表达式是控制循环的条件,可以是任何类型的表达式。,(,2,),while,语句循环是先判断、后执行。若表达式一开始就是假的,则一次循环都不执行。,(,3,)循环体中必须有使循环趋于结束的语句,否则会出现死循环。,do while,语句,do while,语句用于实现直到型循环结构。,其一般形式:,do,循环体语句,while,(表达式);,其执行特点:先执行循环体中的语句,然后判断表达式,当表达式的值为“真”时,就返回重新执行循环体语句,如此反复,直到表达式的值为“,0”,为止,此时循环结束。,无论如何,,do while,循环至少执行一次循环语句。,2.,用,do while,计算,1+2+3+100,;,main(),int,a,sum;,sum=0;,a=1;,do,sum=,sum+a,;,a+;,while(a=100);,printf(“%d,”,sum);,用,for,语句实现循环,1.for,语句的一般表达式:,for,(表达式,1,;表达式,2,;表达式,3,),循环语句,执行过程:,(,1,)先求解表达式,1,;,(,2,)求解表达式,2,,若值为真,则执行,for,语句中的循环语句,然后在执行表达式,3,;,若表达式,2,的值为假,则结束循环。,(,3,)求解表达式,3,后再执行第(,2,)步。,2.for,语句的表达式也可以理解成为:,for(,循环变量赋初值;循环条件;循环变量增量)语句,3.,例如:,for(i=1;i=10;i+)i=1;,sum=sum+1;,while(i,=10),【for,与,while,语句的等效,】,sum=,sum+i,;i+;,4.,(,1,)如果表达式,2,省略了,即不判断循环条件,循环无止境的进行下去。,(,2,)表达式,2,一般是关系表达式或逻辑表达式,但也可以是数值表达式或字符表式,只要其值非零,就执行循环体。,(,3,)表达式一般是关系表达式(,i10),或逻辑表达,(a,b&x,y),,,但也可以是数值表达式或字符表达式,只要其值为非零,就执行循环体。,例,1,:,for,(,i=0;(c=,getchar,()!=n;i+=c,),;,在表达式,2,中先从终端接受一个字符赋给,c,,然后判断此赋值表达式是否不等于,n,,如果不等于,n,就执行循环体。,它的作用:不断的输入字符,将他们的,ASCII,码相加,直到输入一个换行符为止。,它的执行过程如下:,表达式,2,i=0,取一个字符,c,C!=,换行符,i=,i+c,假,真,例如:用,for,语句复制一行字符。,Main(),char a;,后,a=,getchar,();,注释用红色,二,字表示,for(;a,!=n;),printf(“%c”,a,);,a=,getchar,();,注释用紫色二字表示,注释:,for,循环语句中的,printf,是输出红色的,a,,然后接受蓝色的,a,,没有输入,n,,所以继续循环,即输出刚才接受的蓝色的,a,,然后蓝色的,a,再输入,这样在,for,循环中依次循环下去,直到输入,n,也就是在键盘上敲的“,Enter”,时截止。,循环的嵌套,1.,一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。,内嵌的循环中还可以嵌套循环,这就是多层循环。,2.,三种循环结构是可以互相嵌套的。(,while,循环、,dowhile,循环、,for,循环),3.,介绍六种合法的嵌套形式:,(,1,),while()(2)do (3)for(;)(4)while(),.,while()do for(;)do,.,while()while(),(5)for(;)(6)do,while()for(;),.,while(),.,.,.,.,.,.,几种循环的比较,1.,在,while,循环和,dowhile,循环中,只在,while,后面的括号内指定循环条件,因为为了使循环能正常结束,应该在循环体中包含使循环趋于结束的语句(如,i+,或,i=i+1,等,),for,循环可以在表达式,3,中包含使循环趋于结束的操作。,2.,用,while,和,dowhile,循环时,循环变量初始化的操作应在,while,和,dowhile,语句之前完成,而,for,语句可以在表达式,1,中实现循环变量的初始化。,3.While,循环、,do.while,循环和,for,循环,可以用,break,语句跳出循环,用,continue,语句结束本次循环。而对用,goto,语句和,if,语句构成的循环,不能用,break,语句和,continue,语句进行控制。,break,语句和,continue,语句,1.break,语句通常与,switch,语句一起使用。,break,语句对,if/else,的条件语句不起作用;,在多重循环中,一个,break,语句只能向外跳出一层。,2.continue,语句,其作用:跳过循环体中剩余的语句而强行执行下一次循环。,continue,只用于,for,、,while,、,do.while,等循环体中,常与,if,条件语句一起使用,用来加速循环。,例题:把,100200,之间不能被,3,整除的数输出。,main(),int,a;,for(a,=100;a200;a+),if(a%3=0),continue;,printf(“%d”,a,);,思考:把例题中的循环体用,if,语句处理,怎么写?,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服