if语句教案简略版

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(等待同学回答后总结)
是的,就是<,>,=,不等于,大于等于,小于等于。
但是,关系运算符在我们C语言中的表达方式并不是和我们数学课本中所学的完全一致,具体的区别在哪里呢,我们一起来看一下详细的介绍。
在C语言中有以下的关系运算符:>,<,==,!=,>=,<=。其中同学们需要注意的是>=、<=、==和!=的表示。特别是等于(==)运算符,同学们最容易将等于运算符和(=)赋值运算符搞混。然而,如果在程序的编写中将(=)赋值符号作为(==)运算符使用,程序会报错,在后续上机练习中如果出错,同学们可以思考一下是否是自己把关系运算符搞错了。
关系运算符都是双目运算符,其结合性为左结合型。关系运算符的优先级低于算术运算符,高于赋值运算符。六个关系运算符中,>、<、>=、<=的优先级相同,==和! =的优先级相同,但前者高于后者。
在清楚了关系运算符的学习后,我们来看一下C语言中关系表达式是怎样书写的。
关系表达式的一般形式:
表达式关系运算符 表达式
max=(a>b)?a:b;
可以去掉括号Leabharlann 写为max=a>b?a:b;
2)条件运算符“?”和“:”是一对运算符,不能分开单独使用。
3)条件运算符的结合方向是自右至左。例如:
a>b?a:c>d?c:d
应理解为
a>b?a:(c>d?c:d)
这也就是条件表达式的嵌套的情形,即其中的表达式又是一个条件表达式。
(听取学生回答后总结)
对的,简单地说就是自上而下顺序地执行。顺序结构是最简单的程序结构,构成这类程序的语句通常是除了控制语句之外的简单语句,包括赋值语句/函数调用语句等。说到这里大家还回忆得起通过顺序程序设计我们能实现学生成绩管理系统的哪一个部分吗?
(听取学生回答后总结)
是的,你们说的都很对,只是没有说出它正宗的名字叫系统的菜单程序设计,因为这部分只涉及到打印显示的内容,包括成绩录入、成绩修改、成绩查询、成绩统计、成绩排序等,所以可以用顺序程序设计来表示。
一.分支和条件逻辑
C语言中的条件表示有三种表达式分别是关系表达式、逻辑表达式和条件表达式。下面我们一个个进行详细讲解。
(1)首先我们来看一下什么是关系运算符和表达式。
在程序中将经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运算符称为关系运算符。这个关系就是我们数学表达式中所用到的比较符号,同学们知道有哪些吗?
例如: a+b>c+d、
x<=3/2、
‘a’+1<c
-i-5*j==k+1
都是合法的关系表达式
由于表达式也可以是关系表达式,所以允许出现嵌套的情况,例如:
a< (b>c)、
a!=(c==d)
关系表达式运算的结果只有两种:真或假(正确或错误,成立或不成立),用数字1和0表示。
例如: 5>3的运算结果是1(正确),而3<5的结果是0(错误)。
赋值运算符<&&和||<关系运算符<算术运算符<!
从PPT可以看出,&&和1 1的优先级低于算术运算符和关系运算符,&&的优先级高于| |。而!优先级高于所有的算术运算符关系运算符,也高于&&和11。
3)逻辑表达式
表达式逻辑运算符 表达式
运算对象一般为关系表达式或逻辑量(常量或变量)。如:
a>b&&c>d x>3||x<1 5&&b
之前说的&&和||的结合方向为左结合,!的结合方向为右结合。比如:
a>b&&c>d&&e>f等价于((a>b)&&(c>d))&&(e>f)
!b==c||d<a等价于((!b)==c)||(d<a)
逻辑运算的值也有“真”和“假”两种,用“1”和“0”来表示。逻辑运算的求值规则是根据运算符的特点来定的。
教案
2018—2019学年度第一学期
课程:C语言
系部:
任课教师:
教研室主任:
系部主任:
二〇一年月日
教 案
课程名称
C语言
课程性质
专业选修课
适用专业
电子商务
授课班级
大二
教材
《C语言程序设计与项目实践》
授课题目及单元
项目四:If分支语句
教学课时
理论1学时; 实践1学时(按每次上课学时设计)
教学目标
知识目标:
教学重点
与难点
重点:
关系运算符与逻辑运算符及其组成的具有逻辑值的表达式、分支结构中if语句的格式及基本应用。
难点:
复杂条件的逻辑表示;if条件的正确使用
教学手段
与方法
讲授结合多媒体演示;当堂测试;提问试教学
教学过程
设计
1.课堂回顾:
同学们,大家下午好!上节课我们介绍了顺序结构设计,大家还记得顺序结构的格式吗?
任务分析:判断学生的考试成绩是否合格
算法描述:画出流程图;根据流程图编写代码
(3)if多分支结构
(教学方法:PPT演示,讲授法、案列分析法
同学们,我们来看一下书上这段代码,请大家在读懂程序的基础上着重看一下最后程序输出的结果显示。
老师:同学们有什么发现吗?
同学们:输出结果非0即1.
老师:是的,很明显的结论。然后同学们也可以看到输出语句中都是给出的关系表达式。此段代码就是给我们说明关系表达式运算的结果只有成立或者不成立两种。请同学们一定记清楚哈。
&&表示参与运算的两个量都为真时结果才为真,否则为假;
||表示参与运算的两个量只要有一个为真,结果就为真;两个量都为假时,结果为假。
!参与运算量为真时,结果为假。
举例练习:
数学表达式-2<= x < 10的C语言条件表达式:
分析:
-2<= x < 10(错误)
-2<=x&&x<10(正确)
X是偶数的条件表达式:
}
二.简单分支程序设计
我们说过本章的任务是学生成绩处理,所以需要学习分支程序设计的知识。C中我们会学到单分支、双分支分支和多分支结构程序设计。
(1)话不多说,我们先来学习什么是单分支结构
(教学方法:PPT演示,讲授法、 教学时间:5min)
C中使用if语句来实现单分支结构,其语法为:
if(表达式)
{语句;}
printf(“%d”,y>x||z>=y);
printf(“%d”,!(x<y)&&!z);
}
同学,分析出结果了吗?
好,我们一起来读一下这段代码,首先,main()函数里面定义3个变量分别赋值13,22,4.然后是要输出两个逻辑运算的结果。现在我们分别来分析一下逻辑表达式y>x||z>=y。首先根据运算符的优先级,先判断y>x是否为真,y是22,x是13,所以y>x为真;同理,z>=y为假;||运算符是有一个真即为真,因此整个逻辑运算为真,程序的输出结果为1.逻辑表达式!(x<y)&&!z中,!(x<y)为真,!z为假,&&是两个运算量都为真时,结果才为真,所以表达式的值为假,输出0。
1.了解C语言分支结构的作用;
2.熟练掌握关系表达式、逻辑表达式、条件表达式;
3.掌握if语句结构;
能力目标:
1.能熟练运用C语言来表达条件逻辑关系
2.能掌握if语句的实际应用
情感目标
通过对程序中进行对不同条件判断的过程,提高了同学们的逻辑思维能力;将生活中的现实问题与所学内容相结合,开拓了同学们的发展性思维和创造性思维。
(3)条件运算符和表达式
(教学方法:PPT演示,讲授法、提问法、案例分析 教学时间:18min)
在条件语句中,只执行单个的赋值语句的话可以使用条件表达式来实现,条件表达式的最大的优势是简洁。
条件运算符为“?”和“:”。它是C语言中唯一一个三目运算符,即有3个参与运算的量。
条件表达式的一般形式为:
表达式1 ?表达式2 :表达式3
本项目就是根据学生的成绩判断其等级,实际上就是根据输入的成绩,确定学生在哪个分数段,然后执行不同的语句,这就是分支程序的设计。
分支程序设计的关键是如何表达它的条件逻辑,即某段程序执行需要满足的条件。比如当考试成绩低于60分时执行什么样的程序,当考试成绩大于等于60分小于70分时,又执行什么样的程序。那么 如何表达这些逻辑关系这就是本节课我们需要学习的内容了。
2)当表达式为 赋值表达式时,比如在if(a=5)...;中表达式的值永远非零,所以其后的语句总是要执行。这种情况在程序中不一定会出现,但在语法上是合法的。所以同学们在编写程序时一定要注意区分a=b和a==b.
3)if语句和else语句属于同一个if语句,else语句不能单独使用,它必须是if语句的一部分,与if配对使用。
下面我们来分析一个课本上的例子,第一个运用条件表达式,判断一个年份是否是闰年。闰年的条件同学们还记得吗?闰年的条件就是闰年的表示在之前逻辑表达式的练习中我们就写过了,大家还记得吧!这里老师就着重讲如何通过条件表达式来打印输出输入的年份是否为闰年。
#include <stdio.h>
void main()
表达的意思是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。其执行流程图如下:(PPT展示)
需要注意的是:1)表达式可以是关系表达式、逻辑表达式以及赋值表达式;只要表达式的值为非0,即为真。
If(x==y) //关系表达式
z=0;
或者
If(x=1)//赋值表达式
z=0;
或者
If(x>0&&y>0)//逻辑表达式
分析:偶数的定义是能被2整除
x%2=0
x能被4整除但不能被100整除,或者能被400整除的C语言表达式:
x%4==0&&x%100!=0||x%400==0
下面我们来看一段代码,深入理解逻辑运算的过程。请同学们分析这段代码的输出结果。
#include <stdio.h>
void main()
{
int x=13,y=22,z=4;
(2)学习了关系表达式之后我们来学习逻辑表达式。(教学方法:PPT演示,讲授法、提问互动法、课堂测试法 教学时间:18min)
1)C语言提供了3种逻辑运算符:&&(与运算)、||(或运算)、!(非运算)
2)优先级与结合性
&&和| |均为双目运算符,具有左结合性,!是单目运算符,具有右结合性。逻辑运算符和其他运算符的优先级关系可表示如下:
{
int year;
int isleap;
printf(“输入年份”);
scanf(“%d”,&year);
Isleap=(year%4==0)&&(year%100!=0)||(year%400=0);
Isleap?printf(”%d是闰年”,year):printf(“%d不是闰年”,year);
其中,表达式i(1≤i≤3)的类型任意,表达式1一般为关系表达式或逻辑表达式,表达式2和表达式3 -一般为同类型表达式。
条件表达式的求解过程是:先求解表达式1,若表达式1的值不为0,则求解表达式2,表达式2的值就是条件表达式的值;若表达式1的值为0,则求解表达式3,表达式3的值就是条件表达式的值。
条件运算符的优先级高于赋值运算符,但低于逻辑运算符、关系运算符和算术运算符。如:
z=0;
2)表达式必须用括号括起来,在语句之后必须加分号。
3)语句可以是复合语句,如果满足条件时,需要执行的语句多于1条时,必须用一对“{}”括起来表示执行复合语句。
案例:输入一个数,判断是否为偶数。
分析:画出程序流程图,根据流程图写代码
(2)双分支结构的程序设计
(教学方法:PPT演示,讲授法、课堂练习法
3>2?3+2.3*2 等价于(3>2)?(3+2).(3*2)
提醒:
条件表达式通常用于赋值语句之中,例如:
max=(a>b)?a:b;
执行该语句的语义是:如a>b为真,则把a赋予max,否则把b赋予max.
使用条件表达式时的注意事项:
1)条件运算符的优先级高于赋值运算符,但低于逻辑运算符、关系运算符和算术运算符。
2.课程导入
顺序结构很好理解,同学们都掌握了。但是请同学们思考一下实际生活中,仅顺序结构能满足我们的需求吗?肯定不是哈,如果我们的生活真的能像顺序结构一样自上而下一帆风顺,那我们也就没那么多烦恼了。实际的情况是很多时候我们都会面临很多的待处理的情况,不同情况的处理方式不一样。程序也是如此,并不是所有程序都是自上而下的顺序执行,而是根据条件有选择地执行,这就是我们本章将要学习到的分支程序设计。今天开始,我们会进入一个新的内容的学习,通过本章内容的学习我们将会向学生成绩管理系统项目任务完成迈出一大步。这一章的项目任务是学生成绩的分类处理。请大家翻开课本91页查看本章项目的具体要求。
教学时间:8min)
If语句更常用的形式是双分支语句,一般形式如下:
if(表达式)
{
语句1;
}
else
{
语句2;
}
其语义是:当表达式为真时,执行语句体1,否则执行语句体2.其流程图如图所示。
示例代码:
If(x>y)
max=x;
else
max=y;
注意:1)当if语句或else后面只有一条语句时,可以不用花括号{}起来。
相关文档
最新文档