您好,欢迎访问三七文档
当前位置:首页 > 幼儿/小学教育 > 小学教育 > 运算符条件结构.ppt
第三章运算符2目标理解表达式掌握赋值运算符的用法熟练使用关系运算符掌握简单的条件语句的使用熟练使用逻辑运算符了解sizeof运算符理解运算符的优先级3表达式4表达式表达式由操作数和运算符的组合而成表达式中的操作数可以是变量、常量或者子表达式运算符的主要类型有:算术运算符赋值运算符关系运算符逻辑运算符5变量表达式;赋值运算符Height=177.5;Weight=78;Gender=’m’;x=a+b;w=sin(a)+sin(b);y=i++-j;6复合赋值运算符运算符表达式计算结果(假设X=10)+=X+=5X=X+515-=X-=5X=X-55*=X*=5X=X*550/=X/=5X=X/52%=X%=5X=X%507示例#includestdio.hvoidmain(){intnum=30;printf(\n原有人数=%d,num);num+=10;printf(\n现在人数=%d\n,num);}输出:原有人数=30现在人数=408关系运算符3-1操作数关系运算符关系表达式的计算结果=逻辑值(真或假)在C语言中,“0”表示“假”,“非0”表示“真”操作数关系运算符用于测试两个操作数或两个表达式之间的关系,其中操作数可以是变量、常量或表达式。9关系运算符关系运算符3-2操作数1操作数210条件结构2-1条件结构就是需要根据不同条件进行判断,然后执行不同的操作简单if语句的一般形式为:if(条件){语句块}语句11示例请输入两个数:5678两数的和大于100#includestdio.hvoidmain(){intnum1,num2,sum;printf(\n请输入两个数:);scanf(%d%d,&num1,&num2);sum=num1+num2;if(sum100)printf(\n两数的和大于100\n);}12条件结构2-2if-else语句的一般形式为:if(条件){语句块}else{语句块}13示例请输入一个整数:5757是一个奇数。#includestdio.hvoidmain(){intnum;printf(\n请输入一个整数:);scanf(%d,&num);if((num%2)==0)printf(%d是一个偶数。\n,num);elseprintf(%d是一个奇数。\n,num);}14逻辑运算符运算运算符表达式逻辑“与”&&operand1&&operand2逻辑“或”||operand1||operand2逻辑“非”!!operand1逻辑运算符用于连接一个或多个条件,判断这些条件是否成立逻辑运算符的类型为:15&&的示例#includestdio.hvoidmain(){chara;printf(\n请输入一个字符:);scanf(%c,&a);if(a='a'&&a='z')printf(您输入的字符是小写字母\n,a);elseprintf(您输入的字符不是小写字母\n,a);}请输入一个字符:T您输入的字符不是小写字母16||的示例#includestdio.hvoidmain(){chara;printf(“\你确定吗?(确定Y/y,不确定N/n):);scanf(%c,&a);if(a==‘Y'||a==‘y')printf(“确定\n,a);elseprintf(“不确定\n,a);}你确定吗?(确定Y/y,不确定N/n):Y确定17!的示例请输入一个整数:5757是一个奇数。#includestdio.hvoidmain(){intnum;printf(\n请输入一个整数:);scanf(%d,&num);if(!(num%2))printf(%d是一个偶数。\n,num);elseprintf(%d是一个奇数。\n,num);}18sizeof运算符sizeof(int);2floatnum;sizeof(num);4char1int2shortint2long4float4double8sizeof运算符返回的大小使用sizeof运算符可以获得数据类型占用内存空间的大小。其一般形式为:sizeof(类型名)sizeof运算符的结果以字节为单位显示注意:在32位计算机中,int类型的变量占4字节的内存大小,和long类型的大小一样,所以现在基本上可以直接使用int类型,而不需要使用long类型。19运算符优先级2-1当我们遇到一个复杂表达式时,需要确定先执行哪种运算,此时就需要考虑运算符的优先级z=x+y–g*h*(t/20)+65–r%220运算符优先级2-2运算符描述结合性()圆括号自左向右!,++,--,sizeof逻辑非,递增,递减,求数据类型的大小自右向左*,/,%乘法,除法,取余自左向右+,-加法,减法自左向右,=,,=小于,小于等于,大于,大于等于自左向右==,!=等于,不等于自左向右&&逻辑与自左向右||逻辑或自左向右=,+=,*=,/=,%=,-=赋值运算符,复合赋值运算符自右向左21问题描述:判定给定的年份是否为闰年。提示:闰年的判定规则为:能被4整除但不能被100整除的年份,或能被400整除的年份。#includestdio.hvoidmain(){intyear;printf(\n请输入年份:);scanf(%d,&year);if((year%4==0&&year%100!=0)||(year%400==0))printf(\n%d年是闰年\n,year);elseprintf(\n%d年不是闰年\n,year);}综合示例请输入年份:20052005年不是闰年第四章条件结构23目标熟练使用多重if结构熟练使用嵌套if结构熟练使用switch结构理解条件运算符的用法24多重条件判断问题:把学生成绩按照ABCDE进行评级。规则:A90~100分B80~89分C70~79分D60~69分E0~59分25多重if要处理多重条件判断的情况,需要使用多重条件结构多重条件结构嵌套ifswitch结构多重条件结构26多重if结构if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;..else语句n;27#includestdio.hvoidmain(){floatscore;printf(\n请输入考试成绩:);scanf(%f,&score);if(score=90)printf(\nA);elseif(score=80)printf(\nB);elseif(score=70)printf(\nC);elseif(score=60)printf(\nd);elseprintf(\nE);printf(\n);}28嵌套if结构就是将整个if块插入另一个if块中嵌套if结构if(表达式1)if(表达式2)if(表达式3)语句;else语句;真真真假29if(x0)if(y1)z=1;else/*这个else部分属于哪个if?*/z=2;嵌套if结构2-2C语言规定,每个else部分总属于前面最近的那个缺少对应的else部分的if语句。提倡使用大括号括起来以避免看起来有二义性。30嵌套if结构的示例#includestdio.hvoidmain(){inta,b;printf(\n请输入A和B的值:);scanf(%d%d,&a,&b);if(a!=b)if(ab)printf(\nAB\n);elseprintf(\nAB\n);elseprintf(\nA=B\n);}输出:AB31switch-case语句是多路判断语句switch语句计算条件表达式并对照多个常数值进行检查switchswitch(表达式){case常量1:语句;break;case常量2:语句;break;default:语句;}计算表达式的值如果等于常量1如果等于常量2如果没有找到匹配的值32switch的示例1#includestdio.hvoidmain(){chara;printf(你确定吗?(确定Y/y,不确定N/n):);scanf(%c,&a);switch(a){case'Y':printf(确定\n,a);break;case'y':printf(确定\n,a);break;default:printf(不确定\n,a);}}你确定吗?(确定Y/y,不确定N/n):Y确定33switch在使用switch结构时应注意以下几点:在case后的各常量表达式的值不能相同,否则会出现错误;在case后,允许有多个语句,可以不用{}括起来;每个case语句后都必须有一个break语句,否则会出现错误;各case和default子句的先后顺序可以变动,而不会影响程序执行结果;default子句可以省略;34多重if结构和switch结构都可以用来实现多路分支多重if结构用来实现两路、三路分支比较方便,而switch结构实现三路以上分支比较方便在使用switch结构时,应注意分支条件要求是整型表达式,而且case语句后面必须是常量表达式有些问题只能使用多重if结构来实现,例如要判断一个值是否处在某个区间的情况比较多重if和switch结构35switch的示例2考虑刚才的问题能用switch实现吗?问题:把学生成绩按照ABCDE进行评级。规则:A90~100分B80~89分C70~79分D60~69分E0~59分36#includestdio.hvoidmain(){floatscore;intgrade;printf(\n请输入考试成绩:);scanf(%f,&score);grade=(int)score/10;switch(grade){case9:printf(\nA);break;case8:printf(\nB);break;case7:printf(\nC);break;case6:printf(\nd);break;default:printf(\nE);}printf(\n);}37条件运算符2-1条件表达式考试是否及格?是不是真表达式1假表达式238条件运算符2-2if(num100){value=‘y’;}else{value=‘n’;}value=num100?‘y’:‘n’;(1)(0)条件表达式使用“if-else”的等同代码假设num=200value=num100;?‘y’:‘n’200value=‘y’39算术运算符示例问题描述:个人所得税收取规定:工资大于1000元的部分将扣除5%的个人所得税。小于1000元的部分不扣除个人所得税。要求用户输入基本工资,计算税后工资。#includestdio.hvoidmain(){doublesal;doublerate;printf(\n请输入基本工资:);scanf(%lf,&sal);rate=(sal=1000)?0:0.05;sal=sal-(sal-1000)*rate;printf(\n税后工资为:%7.2f\n,sal);}请输入基本工资:1500税后工资为:1475.00
本文标题:运算符条件结构.ppt
链接地址:https://www.777doc.com/doc-4490824 .html