1、 几种基本语句条件语句 重点:重点:难点:难点:理解并会用理解并会用IF-ELSE结构。结构。IF-ELSE-IF结构。结构。新课导入新课导入 新课讲解新课讲解 小结小结 作业作业一、新 课 导 入教学过程教学过程 一、一、简单的简单的IF语句语句 二、二、IF-ELSE语句语句三、三、if-else-if语句语句l 格式格式 流程图 例题其语义是:其语义是:如果表达式的值为真,则执行其后的语句,否则不执如果表达式的值为真,则执行其后的语句,否则不执行该语句,继续执行主程序。行该语句,继续执行主程序。注意注意:1 1、这里的、这里的表达式表达式通常是通常是逻辑表达式或关系表达式逻辑表达式或关系
2、表达式,例如:例如:if(ab&ac)if(ab&ac)printf(“%d”,aprintf(“%d”,a)或是或是if(aif(a=b)b)printf(“aprintf(“a等等于于b”)b”)2 2、但也可以是其它表达式,如、但也可以是其它表达式,如赋值表达式赋值表达式等,甚至也可以等,甚至也可以是一个是一个变量变量。例如:。例如:if(a=5)if(a=5)语句;语句;if(b)if(b)语句;语句;3 3、语句若有语句若有多条语句多条语句,则用,则用 括起来,且语句后必须括起来,且语句后必须有有“;”,而而 后没有后没有“;”例如:例如:if(ab)a+;b+;if(ab)a+;b
3、+;printf(“%d,%d”,a,bprintf(“%d,%d”,a,b););IFIF(表达式)语句表达式)语句 表达式语句语句max=a;if(max60 printf(“及格”);If(小白找小黑玩)printf(“走小路”);If(今天是工作日)printf(“上班”);再如:从键盘上输入两个数,求出它们俩商的相反数。l 格式格式 流程图 例题 if(表达式表达式)语句语句1;else 语句语句2;其语义是:如果表达式的值为真,则执行语句其语义是:如果表达式的值为真,则执行语句1,否则执行语句否则执行语句2。例如:例如:if(x0)printf(“x大于大于0”);else pri
4、ntf(“x小于等于小于等于0);或是或是if(小黑在家小黑在家)printf(“找小黑玩找小黑玩”);else printf(“找小花玩找小花玩”);如果小白找小黑玩,小黑在家吗?若在,找小黑玩,不在,就找小花玩。能用C语言来实现吗?可以,用if-else 语句就能完成。真 假小黑在家吗小黑在家吗找小黑玩找小黑玩找小花玩找小花玩 表达式语句语句1语句语句2 If(ab)printf(max=%dn,a);else printf(max=%dn,b);输入两个整数,输出其中的大数。改用if-else语句判别a,b的大小,若a大,则输出a,否则输出b。l 格式格式 流程图 例题 if(表达式表达
5、式1)语句语句1;else if(表达式表达式2)语句语句2;else if(表达式表达式3)语句语句3;else if(表达式表达式m)语句语句m;else语句语句n;其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。流流程图程图 真 假 假 假 真 真 真 假表达式1表达式2表达式3表达式m语句1语句2语句3语句m语句n 对优、良、及格和不及格,我们分别用5、4、3、2四个等级来表示,划分如下:分数 等级 100-90 5 89-75 4 74-60 3 59-0 2mai
6、n()int sorce,snum;char grade;scanf(“%d,%d”,&snum,&score);if(score89)grade=5;else if(score74)grade=4;else if(score59)grade=3;else grade=2;printf(“%d:%cn”,snum,grade);例例4.P1语句语句5P2P3P4P5语语句句1语句语句2语句语句4语句语句3YYYYYNNNN商场促销商场促销,购物购物500元以上元以上,8折折购物购物300元以上元以上,85折折购物购物100元以上元以上,9折折购物购物50 元以上元以上,95折折购物购物50元以
7、下元以下,不打折不打折设设:消费量为消费量为 money 折扣为折扣为 cost 实际花费实际花费 pricen例:根据消费量,计算优惠率。例:根据消费量,计算优惠率。nif(money500)cost=0.2;nelse if(money300)cost=0.15;n else if(money100)cost=0.1;n else if(money50)cost=0.05;n else cost=0;nprice=money-(money*cost);(1)(1)在三种形式的在三种形式的ifif语句中,在语句中,在ifif关键字之后关键字之后均为表达式。均为表达式。该表达式通常是逻辑表达式
8、或关该表达式通常是逻辑表达式或关系表达式,系表达式,但也可以是其它表达式,如赋值表但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。例如:达式等,甚至也可以是一个变量。例如:if(a=5)if(a=5)语句;语句;if(b)if(b)语句;语句;都是允许的。都是允许的。只要表达式的值为非只要表达式的值为非0 0,即为,即为“真真”。如在如在if(a=5)if(a=5);中表达式的值永远为非中表达式的值永远为非0 0,所以其后的语句总是要执行的,所以其后的语句总是要执行的,当然这种情况在程序中不一定会出现,当然这种情况在程序中不一定会出现,但在语法上是合法的。但在语法上是合法的。又如,
9、有程序段:又如,有程序段:if(a=b)if(a=b)printf(%d,aprintf(%d,a););else else printf(aprintf(a=0);=0);本语句的语义是,把本语句的语义是,把b b值赋予值赋予a a,如为非如为非0 0则输出该值,则输出该值,否则输出否则输出“a=0”a=0”字符串。字符串。这种用法在程序中是经常出现的这种用法在程序中是经常出现的F(2)(2)在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。If(b)printf(“b不是0”);(3)(3)在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组 (多个)语句,则必须把这一组语句 用 括起来组成一个复合语句。但要注意的是在之后不能再加分号。例如:if(ab)a+;b+;else a=0;b=10;