《C语言中的语句》PPT课件.ppt_第1页
《C语言中的语句》PPT课件.ppt_第2页
《C语言中的语句》PPT课件.ppt_第3页
《C语言中的语句》PPT课件.ppt_第4页
《C语言中的语句》PPT课件.ppt_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

主要针对C语言的语句部分,关系运算符和关系表达式,1.关系运算符及其优先次序: (大于) = (大于或等于) = (等于) !=(不等于),优先级相同(高),优先级相同(低),算术运算符关系运算符赋值运算符,关系运算符的结果只有0和1两种,即为逻辑值。,选择结构程序设计,逻辑运算符和逻辑表达式,1. 用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。,2. 逻辑运算符及其优先次序: (1) & 逻辑与 (2) | 逻辑或 (3) ! 逻辑非 “&”和“|”是“双元(目)运算符”,它要求有两个运算量(操作数)。如(ab)&(xy) “ ! ”是一元运算符,只要求有一个运算量。如 !(ab),3.逻辑运算符的优先次序: (1)! & | (2)! 算术运算符 关系运算符 &和 | 赋值运算符,4.逻辑表达式的值将一个非0的数值认作为“真”,5.例如: 53 &83”(因为关系运算符优于 &)的结果“1”;再处理 “1&84-!0” (由于“”优于“&”)所以先处理 “84-!0”现在4的左边为“”,右边为“-”,由于(算术运算符优于关系运算符)所以先处理“4-!0”由于“ !”的等级最高,故先算“ !”也即是“4-1”=3; 再进行“83”得到结果为“0”,再算“1&0”的结果为“0”,既为原表达式的值。,条件运算符,if 语句中当判别的表达式的值为“真”或“假”时,都执行一个赋值语句且向同一个变量赋值时,可以用一个条件运算符来处理。 例如: If(ab) max=a; else max=b; 当ab时将a的值赋给max,当ab是否满足,都相同一个变量赋值。可以用下面的条件运算符来处理。 max=(ab)? a:b;,其中“(ab)?a:b” 是一个“条件表达式” 它的执行过程:若(ab)条件为真,则条件表达式取a,否则取值b. 条件运算符要求有3个操作对象,称三目运算符。 条件表达式的一般形式: 表达式1?表达式2:表达式3,表达式1,条件表达式去 表达式2的值,条件表达式去 表达式3的值,假(0),真(非0),(1)条件运算符的优先级优于赋值运算符,但是比关系运算符和算术运算符都低。 (2)条件运算符的结合方向是 “自右至左”,例如:ab?a:cd?c:d 若 a=1, b=2, c=3, d=4 则先算(cd)?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”, ,If 语句,If语句的三种形式: (1)if(表达式) 语句 例如: if(xy)printf(“%d”,x);,表达式,假(0),语句,真(非0),(2) if(表达式)语句1 else 语句2 例如: if(xy) 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)或逻辑表达(ab&xy), 但也可以是数值表达式或字符表达式,只要其值为非零,就执行循环体。,例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/el

温馨提示

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

评论

0/150

提交评论