第四章逻辑运算和判断选择.docx
第四章逻辑运算和判断选择第二节if语句详解大家好,上一节我们讲解了如下内容:(1)关系运算符和关系表达式(2)逻辑运算符和逻辑表达式本节我们主要讲解如下几个内容,大家看到这些都是语句,请大家认真听;(1) if语句的三种形式(2) if语句的嵌套一:if语句if语句用来判断给定的条件是否满足,根据判定的结果(真或者假)决定执行给出的两种操作之一。if语句有三种形式:a)if(表达式)语句:如果表达式中的条件满足则执行该语句。大家不要忽略if后边是个括号,说白了就是用括号来把这个判断表达式括起来。if(x>5)Printf("该值>5);如果想在条件满足时执行多条语句,则必须用构成复合语句,语句后有分号,但后没有分号,举例if(x>5)Printf("该值>5哦);Printf(“该值确实>5哦);)如果不用,会产生什么结果演示;并掐断点跟踪if(x>5)Printf("该值>5哦);Printf(“该值确实>5哦);该if语句的执行过程如下图:b)if(表达式)语句1else语句2:如果表达式中的条件满足,则执行语句1,否则执行语句2,语句1和语句2中有且只有一个语句能够被执行。举例:if(x>y)printfC×>y是OK的");elseprintf(wx>y不OK");注意,如果是要执行条件中的多条语句,也必须要用大括号,但语句后边有分号,但大括号后边没分号,演示:f(>y)(printf("x>y是OK的1);printf(wx>y是OK的2");)else(printf("x>y不OKl");printf(wx>y不0K2");)如下演示包含语法错误,因为if语句中没有用到括起来多个语句让他们成为复合语句。f(>y)printf("x>y是OK的1);pntf("x>y是OK的2);else(Printf("x>y不OKlw);printf("x>y不0K2");)c)if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3elseif(表达式m)语句melse语句n解释:如果表达式1成立,则执行语句1,如果表达式2成立,则执行语句2。如果表达式m成立,则执行语句m,如果表达式l.m都没成立,则执行表达式nif(number>500)cost=1;elseif(number>300)cost=2;elseif(number>100)cost=3;elsecost=4;假如把最后一个else取消掉会如何。可以跟踪演示一下;说明:a)三种if语句后面都有“表达式”,这个表达式一般为逻辑表达式或者关系表达式,大家回忆一下上节讲的逻辑表达或者关系表达式,形式如下吧:if(a=b&&X=y)千万不要忘记,这里是两个等号,千万不要写成个等号,这里是&&千万不要写成个&print("OK,非常好);这里系统对表达式的值进行了判断,我们可以扩展一下:如果表达式的值为0,则按假处理,如果表达式的值为非0,则按真处理,所以,演示如下: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()语句2else语句3举例intX=5;if(x>1)if(x>8)printf("x>2");elseif(x>3)printf(x>3");elseprintf("x为其他值,);变换后相当于:if(x>1)(if(x>8)printf("x>2");elseif(x>3)printf("x>3");elseprintf("x为其他值,);)所以:如果if与else数目不一致的话,为防止出错,建议增加花括号来配对关系比如if()(if()语句)else()上边,因为的存在,限定了内嵌if语句的范围,因此此时的else必定会和开头的if匹配,而不再和里边的if匹配。举例intx=5;if(x>3)(if(x>4)Printf("x>4");)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!=-);)这节课我们就讲解到这里,下节课见,谢谢大家。