谢丽聪老师C语言课件-5分支结构程序.ppt

上传人:max****ui 文档编号:3268278 上传时间:2019-12-10 格式:PPT 页数:34 大小:335.50KB
返回 下载 相关 举报
谢丽聪老师C语言课件-5分支结构程序.ppt_第1页
第1页 / 共34页
谢丽聪老师C语言课件-5分支结构程序.ppt_第2页
第2页 / 共34页
谢丽聪老师C语言课件-5分支结构程序.ppt_第3页
第3页 / 共34页
点击查看更多>>
资源描述
第五章分支结构程序设计,5.1关系运算符和表达式5.2逻辑运算符和表达式5.3逻辑表达式的跳跃5.4if语句5.5switch语句,5.1关系表达式,由关系运算符、圆括号把两个表达式连接起来的式子。表示条件若所表示的条件成立、则其值为1(非0)、否则其值为0。关系运算符:、=、=、!=例:a=2、39、a!=(a=8)、x+(y=3)=k*z、(a!=3)(kbcd应表示为aba=b=c=0;+a|+b后a、b值分别为0、6,a=1停止不算,值为0赋给a,停止不算,3、执行inta,b,c;a=b=c=-1;+a后a、b、c值分别为0、-1、0,1,a=0,2,不算,值为0,3,c=0,4,整体为0,例1:,main()charc=k;inti=1,j=2,k=3;floatx=3e+5,y=0.85;printf(%d,%dn,!x*!y,!x);printf(%d,%dn,x|i运行结果:0,01,00,1,0,X为非0,为非0,后面不算,为0,后面不算,5.4选择结构(if语句),5.4.1if语句的三种形式1、第一种形式为基本形式:ifif(表达式)语句语义:如果表达式的值为真,则执行其后的语句,否则不执行该语句。其过程可表示为下图。,表达式可以是任意合法表达式,后面不能加;,例2:voidmain()inta,b,max;printf(ninputtwonumbers:);scanf(%d%d,输入:2346输出:max=46,此语句用于提示输入,max=23,max=46,例3:voidmain()inta,b,c,t;printf(ninputtwonumbers:);scanf(%d%d%d,输入:162输出:621,实现数的互换,功能:输入三个数,按照从大到小顺序输出,例4:从键盘输入一个字符,判断它是否小写字母。若是,将其转换成大写字母,否则不进行转换,作后输出该字母。#includemain()charc,a;c=getchar();if(c=z)a=c;/*判断非小写字母情况*/if(c=a)a=c-32;*判断是否是小写字母情况*/printf(%cn,a);,main()charc;c=getchar();if(c=a)c-=32;printf(%cn,c);,2、第二种形式为:if-elseif(表达式)语句1;else语句2;语义:如果表达式的值为真,则执行语句1,否则执行语句2。,后面不能加;,voidmain()inta,b;printf(inputtwonumbers:);scanf(%d%d,输入:2346输出:max=46,输入两个整数,输出其中大数,例2的改写,3、第三种形式为if-else-if形式:if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;elseif(表达式m)语句m;else语句n;,语义:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。,后面不能加;,此为真,做语句1,其它语句都不做,上面的语句为以下三种格式:1、空语句2、一个语句(不引起转移)3、前后加大括号的语句(复合语句),也叫程序段,如:inta;floatb;a=3;b=7.0;,;,允许在复合语句前部定义变量,只能在复合语句中使用,inta;a=3;floatb;b=7.0;,变量要在最前面定义,不能写成,#includestdio.hvoidmain()输入:Acharc;输出:Thisisacapitalletterc=getchar();if(c=0,例5,4、在使用if语句中应注意以下问题:1)在三种形式的if语句中,在if之后均为表达式。该表达式通常是逻辑表达式或关系表达式,但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。例如:if(a=5)语句;if(b)语句;都是允许的。只要表达式的值为非0,即为“真”。如在:if(a=5);中表达式的值永远为非0,所以其后的语句总是要执行的,当然这种情况在程序中不一定会出现,但在语法上是合法的。,又如,有程序段:if(a=b)printf(%d,a);elseprintf(a=0);本语句的语义是,把b值赋予a,如为非0则输出该值,否则输出“a=0”字符串。这种用法在程序中是经常出现的。,=为赋值运算符,比较运算符为=,2)在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。3)在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用括起来组成一个复合语句。但要注意的是在之后不能再加分号。例如:if(ab)a+;b+;elsea=0;b=10;,if(ab)a+;b+;;elsea=0;b=10;;,不能写成,5.4.2条件运算符和条件表达式,在条件语句中,只执行单个的赋值语句时,可使用条件表达式来实现。条件运算符为?和:,它是一个三目运算符,即有三个参与运算的量。条件表达式的一般形式为:表达式1?表达式2:表达式3求值规则为:如果表达式1的值为真,则以表达式2的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。,非0,0,例如条件语句:if(ab)max=a;elsemax=b;可用条件表达式写为:max=(ab)?a:b;执行该语句的语义是:如ab为真,则把a赋予max,如ab为假,则把b赋予max。,使用条件表达式时,还应注意以下几点:1)条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。因此:max=(ab)?a:b可以去掉括号而写为max=ab?a:b2)条件运算符?和:是一对运算符,不能分开单独使用。3)条件运算符的结合方向是自右至左。例如:ab?a:cd?c:d应理解为ab?a:(cd?c:d)这也就是条件表达式嵌套的情形,即其中的表达式3又是一个条件表达式。,例6:计算,方法一:voidmain()floatx,y;scanf(”%f”,表达式,成立值为1,y=x3?x*x+2:3*x+7*x*x;,例7:从键盘输入任意的两个实数,按从小到大顺序输出这两个数,请编程实现。voidmain()floata,b;scanf(”%f%f”,代替,复合语句可以定义变量,a=a+b;b=a-b;a=a-bt=a;a=b;b=t,例8:P1055.5计算,方法一:main()floatx,y;scanf(”%f”,1=xscanf(”%f”,、可省略,y=x1?x:(x10?2*x-1:3*x-11);,(、)可省略,方法三:,if(x10)if(x1)y=x;elsey=2*x-1;elsey=3*x-11;,后不能加;,、和(、)可一起省略,y=x10?(x1?x:2*x-1):3*x-11;,若上面分段函数改为则程序改为voidmain()floatx,y;scanf(”%f”,此语句出错与否都输出,此程序有否缺陷?,程序应改为voidmain()floatx,y;scanf(”%f”,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!