几种基本语句 条件语句 广州市63中 岑光
重点: 理解并会用 IF----ELSE结构。 难点: IF----ELSE----IF结构。
教学过程 新课导入 新课讲解 小结 作业
教学过程 一、新课导入 小白的家 小黑的家
二、新课讲解 一、简单的IF语句 二、IF----ELSE语句 三、if-else-if语句
简单的IF语句 格式 流程图 例题
简单的IF语句格式 IF(表达式)语句 其语义是: 注意:1、这里的表达式通常是逻辑表达式或关系表达式,例如: 如果表达式的值为真,则执行其后的语句,否则不执行该语句,继续执行主程序。 注意: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----ELSE语句 格式 流程图 例题
IF----ELSE语句格式 if(表达式) 语句1; else printf(“x小于等于0); 其语义是:如果表达式的值为真,则执行语句1,否则执行语句2 。 例如:if(x>0) printf(“x大于0”); else printf(“x小于等于0); 或是if(小黑在家) printf(“找小黑玩”); else printf(“找小花玩”);
如果小白找小黑玩,小黑在家吗?若在,找小黑玩,不在,就找小花玩。能用C语言来实现吗?可以,用if ----else 语句就能完成。 真 假
假 真 表达式 语句2 语句1
If (a>b) printf("max=%d\n",a); else printf("max=%d\n",b); 例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 语句m 语句n
例3、编写一程序,根据学生的考分来划分 成绩的优、良、及格和不及格。 例3、编写一程序,根据学生的考分来划分 成绩的优、良、及格和不及格。 对优、良、及格和不及格,我们分别用5、4、3、2四个等级来表示,划分如下: 分数 等级 100-90 5 89-75 4 74-60 3 59-0 2
printf(“%d:%c\n”,snum,grade);} else grade=’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);} printf(“%d:%c\n”,snum,grade);} else grade=’2’; else if(score>59) grade=’3’; grade=’4’; else if(score>74) grade=’5’; if(score>89) scanf(“%d,%d”,&snum,&score); {int sorce,snum; char grade; main()
例4. P1 语句5 P2 P3 P4 P5 语句1 语句2 语句4 语句3 Y N 商场促销, 购物500元以上,8折 例4. P1 语句5 P2 P3 P4 P5 语句1 语句2 语句4 语句3 Y N 商场促销, 购物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);
三、小结 。 只要表达式的值为非0,即为“真”。 如在if(a=5)…;中表达式的值永远为非0, 所以其后的语句总是要执行的, (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; }
四、作业