今天继续学习选择结构,但还是要重点复习一下的是运算符的优先级。
1、!(非)算术运算符,关系运算符,&&和||,赋值运算符的优先级是高到低排列。
2、if语句的一般形式:if(表达式)语句1……else 语句2。
3、条件表达式的一般形式:(表达式1?表达式2:表达式3)
这些都是重要知识点,上节课我就记住了这点东西,具体还有什么重点,也只能在练习中去发现了,这几天白天忙到死,晚上还要加班,所以习题就有点跟不上。。。。
逻辑型变量
在定义逻辑型变量时类型符_Bool。
如:float score;
scanf("%lf",&score);
_Bool a,b; //a,b定义为逻辑型变量
a=score >=60; b=score <=69; //把关系表达式1和2分别赋予a,b;
if(a&&b)printf("The grade is C\n"); //如果a和b 均为真,则输出分数等级为C。
选择结构的嵌套
定义:在if语句中又包含一个或多个if语句称为嵌套。
一般形式为:if(表达式){
if(表达式)语句1
else(表达式)语句2
}
else{
if(表达式)语句3
else(表达式)语句4}
#include <stdio.h>
void main ()
{ int x,y;
scanf("%d",&x);
if(x!=0) { if(x>0) y=1;
else y=-1; }
else y=-1; printf("x=%d,y=%d\n",x,y);}
用switch语句实现多分支选择结构
switch(表达式)一般形式如下:
switch(表达式) //表达式其值类型必须为整数类型(包括字符型)
{ case 常量1:语句1 //这里可以加条break;语句,不然就会一直执行下去。
case 常量2:语句2
case 常量n:语句n
default; 语句n+1
}
注:
1、可以没default标号,此时没有与switch相匹配的case常量,则不执行switch语句,流转到下一个语句。
2、各个case标号出现不同次序,不影响执行结果。
3、每个case常量必须互不相同;否则会出现矛盾的现象。
3、多个case标号,可以共用一组执行语句。
4、在case子句中虽然包含了一个以上的执行语句,但可以不必用花括号括起来。
5、default子句可以省略不用。
例题
给出一百分制成绩,要求输出成绩等级'A','B',‘C',‘D',‘E'。90分以上为'A',80~90分为’B‘,70~79分为'C',60~69分为’D‘,60分以下为’E‘。
#include <stdio.h>
void main(){
float score;char grade;
printf("请输入学生成绩:\n");
scanf("%f\n",&score);
switch((int)(score/10))
{
case 10:
case 9:grade=’A’;break;
case 8:grade=’B’;break;
case 7:grade=’C’;break;
case 6:grade=’D’;break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:grade=’E’;
}
printf(“成绩是%5.1f,相应的等级是%c。\n”,socre,grade);
}
选择结构程序设计第二节学习。2017.2.17