《第四章逻辑运算和判断选择.docx》由会员分享,可在线阅读,更多相关《第四章逻辑运算和判断选择.docx(6页珍藏版)》请在第壹文秘上搜索。
1、第四章逻辑运算和判断选择第二节if语句详解大家好,上一节我们讲解了如下内容:(1)关系运算符和关系表达式(2)逻辑运算符和逻辑表达式本节我们主要讲解如下几个内容,大家看到这些都是语句,请大家认真听;(1) if语句的三种形式(2) if语句的嵌套一:if语句if语句用来判断给定的条件是否满足,根据判定的结果(真或者假)决定执行给出的两种操作之一。if语句有三种形式:a)if(表达式)语句:如果表达式中的条件满足则执行该语句。大家不要忽略if后边是个括号,说白了就是用括号来把这个判断表达式括起来。if(x5)Printf(该值5);如果想在条件满足时执行多条语句,则必须用构成复合语句,语句后有分
2、号,但后没有分号,举例if(x5)Printf(该值5哦);Printf(“该值确实5哦);)如果不用,会产生什么结果演示;并掐断点跟踪if(x5)Printf(该值5哦);Printf(“该值确实5哦);该if语句的执行过程如下图:b)if(表达式)语句1else语句2:如果表达式中的条件满足,则执行语句1,否则执行语句2,语句1和语句2中有且只有一个语句能够被执行。举例:if(xy)printfCy是OK的);elseprintf(wxy不OK);注意,如果是要执行条件中的多条语句,也必须要用大括号,但语句后边有分号,但大括号后边没分号,演示:f(y)(printf(xy是OK的1);pr
3、intf(wxy是OK的2);)else(printf(xy不OKl);printf(wxy不0K2);)如下演示包含语法错误,因为if语句中没有用到括起来多个语句让他们成为复合语句。f(y)printf(xy是OK的1);pntf(xy是OK的2);else(Printf(xy不OKlw);printf(xy不0K2);)c)if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3elseif(表达式m)语句melse语句n解释:如果表达式1成立,则执行语句1,如果表达式2成立,则执行语句2。如果表达式m成立,则执行语句m,如果表达式l.m都没成立,则执行表达式ni
4、f(number500)cost=1;elseif(number300)cost=2;elseif(number100)cost=3;elsecost=4;假如把最后一个else取消掉会如何。可以跟踪演示一下;说明:a)三种if语句后面都有“表达式”,这个表达式一般为逻辑表达式或者关系表达式,大家回忆一下上节讲的逻辑表达或者关系表达式,形式如下吧:if(a=b&X=y)千万不要忘记,这里是两个等号,千万不要写成个等号,这里是&千万不要写成个&print(OK,非常好);这里系统对表达式的值进行了判断,我们可以扩展一下:如果表达式的值为0,则按假处理,如果表达式的值为非0,则按真处理,所以,演示
5、如下:if(15)Printf(成立哦”);并且表达式的类型也不限于关系表达式和逻辑表达式,也可以是任意的数值类型比如实型,字符型等等,举例。if(宣)Print(条件为真哦);b)if语句可以单独使用,但HSe语句不能单独使用,必须与if语句配对使用,也就是说,如果出现了else,必然会对应一个if语句。if语句的嵌套:在if语句中又包含一个或者多个if语句称为if语句的嵌套,比如:if()if()语句1else语句2elseif()语句3else语句4这里要特别注意,if与else的配对关系,else总是和他上面最近的尚木配对的if进行配对,如下:if()if()语句1elseif()语句
6、2else语句3举例intX=5;if(x1)if(x8)printf(x2);elseif(x3)printf(x3);elseprintf(x为其他值,);变换后相当于:if(x1)(if(x8)printf(x2);elseif(x3)printf(x3);elseprintf(x为其他值,);)所以:如果if与else数目不一致的话,为防止出错,建议增加花括号来配对关系比如if()(if()语句)else()上边,因为的存在,限定了内嵌if语句的范围,因此此时的else必定会和开头的if匹配,而不再和里边的if匹配。举例intx=5;if(x3)(if(x4)Printf(x4);)else(Printf(执行else);)上例把X设置为2,再次运行,断点调试观察。老师再次强调,为了防止混乱,也为了读你代码的人能够读到清晰的代码,该加的地方一定要加大括号,该缩进的地方也一定要缩进,比如if的下的语句都是要有缩进的,按tab键缩进。演示:intx=l;inty=-1;if(X!=0)(缩进Printf(1行语句也可以用括住嘛)else(if(y=-1)(Printf(y=-V)else(printf(y!=-);)这节课我们就讲解到这里,下节课见,谢谢大家。