欢迎来到天天文库
浏览记录
ID:14819247
大小:66.00 KB
页数:7页
时间:2018-07-30
《第4-2课 选择结构程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第4-2课选择结构程序一、教学目标 1、if语句 if语句的三种形式 if语句的嵌套 条件运算符和条件表达式2、switch语句二、教学过程1、复习if语句2、复习ifelse语句3、第三种形式为if-else-if形式if(表达式1)语句1;elseif(表达式2)语句2;…elseif(表达式m)语句m;else语句n;其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。if-else-if语句的执行过程如图3—3所示。【例-】输入成绩判断等级(多条件
2、,多分支语句)main(){intcj;scanf("%d",&cj);printf("cj=%d",cj);if(cj>=60&&cj<70)printf("及格");elseif(cj>=70&&cj<80)printf("中等");elseif(cj>=80&&cj<90)printf("良好");elseif(cj>=90&&cj<=100)printf("优秀");elseprintf("不及格");getch();}4、在使用if语句中还应注意以下问题:(1)在三种形式的if语句中,在if关键字之后均为表达式。该表达式通常是逻辑表达式或关系表达式,但也可
3、以是其它表达式,如赋值表达式等,甚至也可以是一个变量。例如:if(a=5)语句;if(b)语句;都是允许的。只要表达式的值为非0,即为“真”。如在:if(a=5)…;中表达式的值永远为非0,所以其后的语句总是要执行的,当然这种情况在程序中不一定会出现,但在语法上是合法的。又如,有程序段:if(a=b)printf("%d",a);elseprintf("a=0");本语句的语义是,把b值赋予a,如为非0则输出该值,否则输出“a=0”字符串。此用法在程序中是经常出现的。(2)在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。(3)在if语句的三种形式中,
4、所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。但要注意的是在}之后不能再加分号。例如:if(a>b){a++;b++;}else{a=0;b=10;}5、if语句的嵌套当if语句中的执行语句又是if语句时,则构成了if语句嵌套的情形。其一般形式可表示如下:if(表达式)if语句;或者为if(表达式)if语句;elseif语句;在嵌套内的if语句可能又是if-else型的,这将会出现多个if和多个else重叠的情况,这时要特别注意if和else的配对问题。例如:if(表达式1)if(表达式2)语句1;el
5、se语句2;其中的else究竟是与哪一个if配对呢?应该理解为:if(表达式1)if(表达式2)语句1;else语句2;还是应理解为:if(表达式1)if(表达式2)语句1;else语句2;为了避免这种二义性,C语言规定,else总是与它前面最近的if配对,因此对上述例子应按前一种情况理解。【例-】main(){inta,b;printf("pleaseinputA,B:");scanf("%d%d",&a,&b);if(a!=b)if(a>b)printf("A>B");elseprintf("A
6、大小关系。本例中用了if语句的嵌套结构。采用嵌套结构实质上是为了进行多分支选择,实际上有三种选择即A>B、Ab)printf("A>B");elseprintf("A
7、2:表达式3其求值规则为:如果表达式1的值为真,则以表达式2的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。条件表达式通常用于赋值语句之中。例如条件语句:if(a>b)max=a;elsemax=b;可用条件表达式写为max=(a>b)?a:b;执行该语句的语义是:如a>b为真,则把a赋予max,否则把b赋予max。使用条件表达式时,还应注意以下几点:1)条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。因此max=(a>b)?a:b可以去掉括号而写为max=a>b?a:b2)条件运算符?和:是一对运算符,
此文档下载收益归作者所有