270 likes | 494 Views
广州市 63 中 岑光. 几种基本语句 条件语句. 重点:. 理解并会用 IF----ELSE 结构。. 难点:. IF----ELSE----IF 结构。. 教学过程. 新课导入 新课讲解 小结 作业. 教学过程. 一、新课导入. 小白的家. 小黑的家. 二、新课讲解. 一、 简单的 IF 语句. 二、 IF----ELSE 语句. 三、 if-else-if 语句. 简单的 IF 语句. 格式. 流程图 例题. 简单的 IF 语句格式. IF ( 表达式)语句. 其语义是:
E N D
广州市63中 岑光 几种基本语句 条件语句
重点: 理解并会用 IF----ELSE结构。 难点: IF----ELSE----IF结构。
教学过程 新课导入 新课讲解 小结 作业
教学过程 一、新课导入 小白的家 小黑的家
二、新课讲解 一、简单的IF语句 二、IF----ELSE语句 • 三、if-else-if语句
简单的IF语句 • 格式 • 流程图 • 例题
简单的IF语句格式 IF(表达式)语句 其语义是: 如果表达式的值为真,则执行其后的语句,否则不执行该语句,继续执行主程序。 注意:1、这里的表达式通常是逻辑表达式或关系表达式,例如: if(a>b &&a>c) printf(“%d”,a)或是if(a==b) printf(“a等于b”) 2、但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。例如: if(a=5) 语句;if(b) 语句; 3、 语句若有多条语句,则用{ }括起来,且语句后必须有“;”,而}后没有“;” 例如:if(a>b){a++;b++;} printf(“%d,%d”,a,b);
小白找小黑玩吗 假 真 表达式 真 走小路 语句
例1:求两个数中的较大数 max=a;if (max<b) max=b;printf("max=%d",max); 本例程序中,输入两个数a,b,把a先赋予变量max,再用if语句判别max和b的大小,如max小于b,则把b赋予max。因此max中总是大数,最后输出max的值。
这类的例子很多 • if(成绩)>60 printf(“及格”) ; • If(小白找小黑玩)printf(“走小路”); • If(今天是工作日) printf(“上班”); • 再如: 从键盘上输入两个数,求出它们俩商的相反数。
IF----ELSE语句 • 格式 • 流程图 • 例题
IF----ELSE语句格式 if(表达式) 语句1; else 语句2; 其语义是:如果表达式的值为真,则执行语句1,否则执行语句2 。 例如:if(x>0) printf(“x大于0”); else printf(“x小于等于0); 或是if(小黑在家) printf(“找小黑玩”); else printf(“找小花玩”);
如果小白找小黑玩,小黑在家吗?若在,找小黑玩,不在,就找小花玩。能用C语言来实现吗?可以,用if ----else 语句就能完成。 真假 小黑在家吗 找小黑玩 找小花玩
假 真 表达式 语句2 语句1
例2:求两个数中较大的一个。 If (a>b) printf("max=%d\n",a);else printf("max=%d\n",b); 输入两个整数,输出其中的大数。改用if-else语句判别a,b的大小,若a大,则输出a,否则输出b。
if-else-if语句 • 格式 • 流程图 • 例题
if-else-if语句格式 if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3; … else if(表达式m) 语句m; else语句n; 其语义是:依次判断表达式的值,当出现某个值为真时, 则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n 。 然后继续执行后续程序 。
流程图 表达式1 表达式2 表达式3 表达式m 语句1 语句3 语句2 语句n 语句m 真 假 假 假 真 真 真 假
例3、编写一程序,根据学生的考分来划分 成绩的优、良、及格和不及格。 对优、良、及格和不及格,我们分别用5、4、3、2四个等级来表示,划分如下: 分数 等级 100-90 5 89-75 4 74-60 3 59-0 2
main() {int sorce,snum; char grade; scanf(“%d,%d”,&snum,&score); if(score>89) grade=’5’; else if(score>74) grade=’4’; else if(score>59) grade=’3’; else grade=’2’; printf(“%d:%c\n”,snum,grade);} main() {int sorce,snum; char grade; scanf(“%d,%d”,&snum,&score); if(score>89) grade=’5’; else if(score>74) grade=’4’; else if(score>59) grade=’3’; else grade=’2’; printf(“%d:%c\n”,snum,grade);}
P1 N Y P2 N P3 Y N Y P4 N Y P5 Y 语句1 语句2 语句3 语句4 语句5 例4. 商场促销, 购物500元以上,8折 购物300元以上,85折 购物100元以上,9折 购物50 元以上,95折 购物50元以下,不打折 设:消费量为 money 折扣为 cost 实际花费 price
例:根据消费量,计算优惠率。 • if (money>500) cost=0.2; • else if (money>300) cost=0.15; • else if (money>100) cost=0.1; • else if (money>50) cost=0.05; • else cost=0; • price=money-(money*cost);
三、小结 (1)在三种形式的if语句中,在if关键字之后均为表达式。 该表达式通常是逻辑表达式或关系表达式, 但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。例如: if(a=5) 语句;if(b) 语句; 都是允许的。 。 只要表达式的值为非0,即为“真”。 如在if(a=5)…;中表达式的值永远为非0, 所以其后的语句总是要执行的, 当然这种情况在程序中不一定会出现, 但在语法上是合法的。
又如,有程序段: if(a=b) printf("%d",a); else printf("a=0"); 本语句的语义是,把b值赋予a, 如为非0则输出该值, 否则输出“a=0”字符串。 这种用法在程序中是经常出现的
(2)在if语句中, 条件判断表达式必须用括号括起来, 在语句之后必须加分号。 If(b) printf(“b不是0”);
(3)在if语句的三种形式中, 所有的语句应为单个语句, 如果要想在满足条件时执行一组 (多个)语句,则必须把这一组语句 用{} 括起来组成一个复合语句。 但要注意的是在}之后不能再加分号。例如:if(a>b){ a++; b++;} else{ a=0; b=10; }