C(四)详细教案_第1页
C(四)详细教案_第2页
C(四)详细教案_第3页
C(四)详细教案_第4页
C(四)详细教案_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、课程名称:程序逻辑和C语言实现北大青鸟Aptech学术部C语言教案第四章 条件结构授课教师:陈锡伟课时:2小时l 本章主要目的n 1)C语言中的多重IFn 2)嵌套IFn 3)switch条件结构l 本章重点n 多重IF、嵌套IF、switch条件结构l 本章难点n 多重结构的语法,并使用多重条件结构解决实际问题一回顾上一章:1) 表达式是操作数和运算符的集合。运算符包括了符值运算符、逻辑运算符、关系运算符、算术运算符。逻辑运算符是测试两个操作数之间的关系。回顾&/|/!的用法。2) 条件结构解决了程序的判断分支情况。回顾其结构。3) Sizeof()运算符用于测试一种数据类型在内存所占的空间

2、。单位是:字节4) 在各种运算符中进行运算时,各种操作数具有优先级别。5) 回顾作业:讲解用户输入三个数,找出最大值,并输出的例子。并提示思路:验证用户输入的字符是否为大写字母。提示:运用输入字符的ASCII码值来判断输入的字符是否在大写字母的范围之内。二目标:1)多重if结构2)嵌套if结构3)使用switch结构4)理解条件运算符的用法三知识点讲解以生活中的例子,如等车、PPT里制作黄瓜沙拉为例讲解可能在程序中会出现多重的条件判断,用简洁的if-else不太方便。所以当我们遇到多重条件判断,就需要多重结构的判断。在C语言中提供了多重IF,嵌套IF及switch结构这三种结构。(一).多重I

3、F结构:1.引入:是在涉及多分支判断时组织IF语句的一种形式。是if-else语句的另一种形式。称为阶梯IF。结构如下:2.语法:If (条件)语句1Else if (条件)语句2Else语句33.案例: 案例讲解:输入一个成绩,判断属于哪个级别。如60分的不及格,80分的一般,100良好,=100优秀。 案例讲解:西瓜的价格如下:低于5公斤的西瓜每斤a元。低于10公斤的每斤b 元,10公斤以上的每公斤c元。编程计算重量为X斤的西瓜应付多少钱。#includevoid main()double a,b,c,x,p;printf(输入重量x,以及价钱a,b,c:);scanf(%lf%lf%lf

4、%lf,&x,&a,&b,&c);if(x5 & x 0) if (y 1) z = 1;else /*这个 else 部分属于哪个 if?*/ z = 2; 问题描述:这个题目有两种解释:NO.1处在外层是一个没有else部分的的条件语句。最后的else部分属于内层。No.2内层是一个不带else部分的条件语句,最后一行的else属于外层条件语句。 C语言规定:在每个else匹配if都有就近原则。和临近最近的那个if进行匹配。 解决问题:提倡在使用if语句时使用大括号,使结构清楚,来避免这种二义性的存在。2应用:案例讲解1:输入两个数字,判断这个数的大小,首选比较两个数是否相等的情况。如果不

5、相等时,再判断是哪个数更大些。如下。#includevoid main()int a,b;printf(n 请输入 A 和 B 的值: );scanf(%d%d,&a,&b);if(a!=b) if(ab)printf(n ABn);elseprintf(n ABn);elseprintf(n A=Bn); 案例讲解2:在上个例子的基础上进行改进。如果输入三个数,进行判断。使用三层if嵌套。(是否有更好的案例?)(讲解如果三个条件都满足的情况,满足两个条件的情况,满足一个条件的情况,一个条件都不满足的情况。)#include void main()int x,y,z;printf(n 请输入第

6、一个数: );scanf(%d, &x);printf(n 请输入第二个数: );scanf(%d, &y);printf(n 请输入第三个数: );scanf(%d, &z);if(x30)if(y30)if(z=40)/* 如果所有三个条件均为真,则显示消息 */printf(n 满足全部三个条件。 n );else/* 如果前两个条件均为真,则显示消息 */printf(n 满足前两个条件。 n );else/* 如果第一个条件为真,则显示消息 */printf(n 仅满足第一个条件。 n );else printf(n 一个条件也不满足。 n );(三)switch语句1、引入:在前面

7、已经判断过嵌套if语句和多重if语句的情形,但是在判断中还有一种情形。根据多种选项进行判断。也就是讲在条件中需要检查同一个变量的取值是否等于特定的值。而且这些这些值是罗列出来的。在这种情况下就用switch语句来替代if语句。PPT11Switch语句是多路判断语句。用来计算条件表达式,并对照多个常数值进行检查。2、语法:Switch(表达式)Case 常量1:语句;Break;Case 常量1:语句;Break;Default:语句;switch关键字是switch结构的开始。计算此关键字中圆括号内的表达式,并将表达式的结果与case后的值进行比较。如果相等的话,就执行case后的语句。用大

8、括号来表示开始和结束。其中default语句是可选项。注意:1).switch语句中,变量的类型只能是整型或者是字符类型。如int和char型(unsigned int 、short、unsigned char),但不能是浮点型。或者也不能为实型 。2). case语句之后可以直接是常量数值,如1、2、3也可以是一个常量的计算式,如2+2但是不能包含变量或带有变量的表达式。如2*a或者2.0/2这样的表达式。3).case语句之后要一个冒号。4).break语句:是使得程序在执行完选中的分支后,可以跳出整个switch语句。如果没有这个语句,程序将会进行到下一个分支,直到遇到bareak或都s

9、witch语句结束。所以每个Case后必须有break语句。5).default是可选项,如果没有default,程序在找不到default的时候,程序将不做任何操作,直接退出switch语句。各个case和default语句顺序可以变动。6)在case后的各常量值不能相同。允许有多个语句,但可以不用3、示例:案例讲解1:输入一个字符,判断是否是元音。案例讲解2:输入一个月份,判断一个月的天数。#include void main()int month;printf(n 请输入月份数: );scanf(%d, &month);switch(month) /* switch 语句开始*/ cas

10、e 4 : case 6 : case 9 : case 11 : printf(n最大天数为 30。n);break; case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 :printf(n最大天数为 31。n);break; case 2 :printf(n最大天数为 28 或 29。n);break; default : printf(n错误输入n); /*switch 语句结束*/(四)switch语句和if-else-if的比较1)比较:1、switch语句和if-else-if都是用于实现多路分支,if-el

11、se-if语句用来实现两路、三路分支比较方便,而switch结构实现三路以上的分支比较方便。2、在使用switch结构时,注意分支条件表达式都是整型表达式,或者是用case语句后必须是常量表达式。另外switch语句中,只能做值是否相等的判断。不能在case语句后进行是否处于某个范围之内的判断。2)案例:案例讲解1:输入一个字符。要求判别是字符、数字还是其它的控制字符。案例讲解2:输入两个操作数和一个个运算符。判断是运算符。进行不同的运算并输出。(五)条件运算符条件运算符用于替代if-else语句,条件运算符有三个操作数,所以称为三元运算符。1、语法:(条件表达式)?为真时返回的值:为假时返回

12、的值2、案例:案例讲解1:输入两个数,比较大小。并输出结果。#include void main()int num1,num2;printf(n 请输入第一个数: );scanf(%d, &num1);printf(n 请输入第二个数: );scanf(%d, &num2); /* 使用含有三元运算符的代码检查 num1 是否大于 num2 */ (num1 num2 ? printf(n第一个数大于第二个数n) : printf(n第二个数大于第一个数n);案例讲解2:收取个人所得税,工资大于1600扣除4%,小于1600不计个个所得税。要求输入工资后计算实发工资。补充:逗号运算符a=10,2010 a=(10,20)20四。总结:q 1. 多重if结构就是在主if块的else部分中还

温馨提示

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

评论

0/150

提交评论