文档详情

二级C语言第四章选择结构程序设计.ppt

发布:2025-03-24约5.98千字共10页下载文档
文本预览下载声明

(2)如果if语句内部或else子句内部需要放置多条语句,必须将这多条语句构成一个复合语句,这样才能符合if语句的语法格式。【例】输入三个整数,将其降序排序后输出。#includestdio.hvoidmain(){inta,b,c,t;printf(“inputthedata:”);scanf(“%d,%d,%d”,a,b,c);if(ab){t=a;a=b;b=t;}if(ac){t=a;a=c;c=t;}if(bc){t=b;b=c;c=t;}printf(“%d,%d,%d”,a,b,c);}(3)在嵌套的if语句中,确保else子句和对应的if语句正确匹配是非常关键。else子句不能单独使用,每个else子句必须属于前面出现的某个if语句。考虑下面的程序片段:if(a==b)if(b==c)printf(“a==b==c”);elseprintf(“a!=b”);上面的else子句应该属于哪一个if语句呢?C语言编译器遵循这样一个简单原则——else子句总是和离它最近的,还未和其它else匹配的if语句进行匹配。因此在上述程序片段中,else子句实际上是和第二个if语句匹配的,写成下面的形式可以更直观的表达出它们的匹配关系。if(a==b)if(b==c)printf(“a==b==c”);elseprintf(“a!=b”);这样的话,上面的程序片段便出现了严重的逻辑矛盾。从语义上分析,我们希望else子句和第一个if语句匹配。为了实现这一点,我们可以用一对大括号将第二个if语句括起来。if(a==b){if(b==c)printf(“a==b==c”);}elseprintf(“a!=b”);124.3.5条件运算符和条件表达式条件运算符可以根据条件在两个备选值中选择一个01条件运算符由符号“?”和符号“:”组成02条件运算符是一个三元运算符,要求有3个操作数03条件表达式的一般形式为:表达式1?表达式2:表达式304首先计算表达式1的值,如果表达式1的值不为零(即值为真),则计算表达式2的值,并将该值作为整个条件表达式的值;如果表达式1的值为零(即值为假),则计算表达式3的值,并将该值作为整个条件表达式的值。例如inta=1,b=2,min,max;min=(ab)?a:b;max=(ab)?a:b;上述语句执行后,变量min的值为1,max的值为2。01使用条件表达式可以代替一些简单的if语句。03max=(ab)?a:b;02if(ab)max=a;elsemax=b;04if(ab)printf(“%d”,a);elseprintf(“%d”,b);printf(“%d”,(ab)?a:b);05条件运算符的优先级高于赋值运算符和逗号运算符,低于所有其它运算符。其结合方向为自右向左。0?1:x0?-1:00?1:(x0?-1:0)4.3.6switch语句基本形式的if语句可以根据一个判断条件形成两个处理分支,为了描述更多的分支,我们可以使用嵌套形式的if语句。1C语言还提供了另外一个可以描述多个处理分支的语句——switch语句,switch语句可以根据一个表达式的值决定选择哪一个分支。2第四章选择结构程序设计4.1关系运算符和关系表达式4.1.1关系运算符关系运算符用于判断两个数据之间的某个关系是否成立。C语言提供了六种关系运算符:小于=小于等于大于=大于等于==等于!=不等于关系运算的结果是逻辑值:成立(真)或不成立(假)。3运算结果为真5运算结果为假b+c(b+c)a=bca=(bc)a==bca==(bc)(1)注意书写格式“==”是表示判断两个数据数值是否相等,一定要和赋值运算符“=”区分开。(2)注意运算符优先级和结合性“”,“=”,“”,“=”的优先级相同(6级),“==”和“!=”的优先级相同(7级)。关系运算符的结合方向均为自左向右结合。关系运算符均是二元运算符,一个关系运算符的两个操作数类型要相同,如果类型不一致,系统将自动进行类型转换。’A’==65运算

显示全部
相似文档