第五章逻辑运算和判断选取控制

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• switch(表达式)
• { case 常量表达式1:语句1
• case 常量表达式2:语句2
• ……
• case 常量表达式n:语句n
• default
:语句n+1

}
• 举例说明其执行过程。
• 说明:
• 1、 switch后面表达式类型可是int与char
• 2、执行过程, default 的执行
第五章 逻辑运算和判断选取控制
• §来自百度文库.1 关系运算符和关系表达式
• 关系运算本质上是“比较运算”。通过比 较看比较的结果。如:9<3,结果为假。
• 5.1.1 关系运算符、优先级与结合性
• 分为两组:左结合性
• < <= > >= 如:a>b
• == !=
如:a>b!=c
• 5.1.2 关系表达式
• 4、条件表达式不能取代一般的if语句 • 5、三个表达式的类型问题
• §5.4 switch语句 • switch语句是个多分支选择语句。 • C语言中用于处理多支问题,可用嵌套if
语句,也可用带else if的语句来完成。 • 但switch语句以更简洁的形式实现多分支
选择。语句的一般形式为:
• 用关系运算符将两个表达式(算术、关 系、逻辑、赋值、逗号、字符表达式) 连接起来的式子,称为关系表达式,其 结果是一个逻辑值,即“真”或“假”。
• 如:a+b>b*c

(a=3)<(b=5)

(a>b)==c

f=a>b>c
• 计算当:a=3,b=2,c=1时各表达式的值
• 关于逻辑型值,一定要注意的是“C语言 中没有逻辑型数据”,在C中,“假”就 表示为0、“真”就是1(非0)。
• 3、n个常量表达式应各不相同
• 4、case出现的次序可以不同,不影响结 果
• 5、执行完一个case后面的语句后,流程 控制转移到下一个case继续执行。利用 break语句实现跳出switch语句。
• 6、多个case可以共用一组执行语句。
• §5.5 程序举例 • 例:习题5.5
• 重点内容 • 1、三类运算符与表达式 • 2、实现两支与多支选择控制结构 • 习题 • 5.4、5.5、5.6
• 例1、输入两个数,按由小到大次序输出 这两个数。
• #include “stdio.h” • main() • {int a1,a2,c; • scanf(“%d,%d”,&a1,&a2); • if(a1>a2){c=a1;a1=a2;a2=c;} • printf(“%d %d”,a1,a2); •}
• 的)if配对。不能期望通过在书写程序时 对齐if与else单词来实现配对。
• 例5.3,并观察流程图 • 5.3.3 条件运算符 • 若if语句中,当表达式为0或为1时,且都
执行一个赋值语句给同一变量赋值时, 可以用简单的条件运算符来处理。如:
• if( a>b)max=a;
• else max=b; • 可用条件运算符来处理:

else pintf(“%d\n”,y);
• 3、 if(表达式1)语句1 • else if(表达式2)语句2 • else if(表达式3)语句3
• …… • else if(表达式n)语句n • else 语句m • 解决多支函数的问题的实现 • 若干说明问题: • 1、表达式 2、语句中的分号 3、复合语句
• 例2、输入三个数,按小大顺序输出 • main() • {float a,b,c,t; • scanf(“%f,%f,%f”,&a,&b,&c); • if(a>b){t=a;a=b;b=t;} /*a<b*/ • if(a>c){t=a;a=c;c=t;} /*a<c*/ • if(b>c){t=c;c=b;b=t;} /*b<c*/ • printf(“%f,%f,%f”,a,b,c); •}
• 5.3.2 if语句的嵌套--解决多支问题 • 在一个if语句是又包含一个或多个if语句
的称为if语句的嵌套 • if(条件1) • if( 条件2)语句1 • else 语句2
• else • if(条件3)语句3 • else 语句4 • 应注意if与else的配对关系。从最内层开
始,else总是与它上面最近的 (未曾配 对
• §5.3 选择控制语句--if
• if语句可用于实现,根据条件从两组语句 中选择其一执行的结构。
• 5.3.1 if语句的三种形式
• 1、 if(表达式)语句
• if(x>y)printf(“%d\n”,x);
• 2、 if(表达式)语句1 else 语句2
• if(x>y)printf(“%d\n”,x);
• §5.2 逻辑运算符和逻辑表达式 • 概念:用逻辑运算符将关系表达式或逻
辑量连接起来,并能计算出一个逻辑值 的式子。如:(9<3) AND (x>y) • 5.2.1 逻辑运算符、优先级与结合性 • 提供了三种逻辑运算符:左结合性
• && 逻辑与AND、双目运算符 • || 逻辑或OR、双目运算符 • ! 逻辑非NOT、单目运算符 • 看表,体会逻辑运算的含义。 • 优先级不同。 • 5.2.2 逻辑表达式求值过程 • 设:a=3,b=4,c=5求值 • 1、a+b>c&&b==c • 2、!(a>b)&&!c||1
• max= ( a>b)? a:b;
• 其中( a>b)? a:b叫“条件表达式”。表 达式求值过程为:
• 条件运算符是? : 它是个三目运算符
• 条件表达式的一般形式为:

表达式1?表达式2:表达式3
• 说明:
• 1、条件表达式求值过程
• 2、条件运算符的优先级
• 3、条件运算符的结合方向:右结合性
相关文档
最新文档