资源描述:
《程序流程控制实用培训教程.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库。
1、第二章程序的流程控制2.1选择(分支)结构2.1.1关系运算符与逻辑运算符C的关系运算符如下:>大于>=大于等于<小于<=小于等于==等于!=不等于关系运算符关键是真(true)和假(false)的概念。C中true可以是不为0的任何值,而false则为0。使用关系运算符时,若表达式为真(即true)则返回1,否则,表达式为假(即false),则返回0。例如:100>99返回110>(2+10)返回02.0算法的表示2.1算法的概念算法是对特定问题求解步骤的一种描述,也是解决问题的办法,它是指令的有限序列,其中每一条指令表示一个或多个
2、操作。自然语言流程图N-S图伪代码PAD图2.2算法的表示2.0算法的表示起止框处理框判断框输入输出框流程线连接点注释框2.2算法的表示---流程图2.0算法的表示程序的三种基本结构1.顺序结构2.2算法的表示---流程图AB流程图2.0算法的表示程序的三种基本结构2.2算法的表示---流程图2.选择序结构PAB真假2.0算法的表示程序的三种基本结构2.2算法的表示---流程图3.循环序结构1.当型(while型)循环结构2.直到型(until型)循环结构PA假真AP真假2.0算法的表示2.1选择(分支)结构2.1.1关系运算符与逻辑
3、运算符C的逻辑运算符如下:!逻辑非&&逻辑与
4、
5、逻辑或例如:!1&&0先求!1和先求1&&0将会等于出不同的结果,那么何者优先呢?这在C中是有规定的C的部分运算符的优先级如下:━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━表达式┃优先级───────────────────────────╂────()(小括号)[](数组下标).(结构成员)->(指针型结构成员)┃最高!(逻辑非)~(位取反)-(负号)++(加1)--(减1)&(变量地址)┃*(指针所指内容)sizeof(长度计算)┃*(乘)/(除)%(取模)┃+(
6、加)-(减)┃<<(位左移)>>(位右移)┃<(小于)<=(小于等于)>(大于)>=(大于等于)┃==(等于)!=(不等于)┃&(位与)┃^(位异或)┃
7、(位或)┃&&(逻辑与)┃
8、
9、(逻辑或)┃?:(?表达式)┃=+=-=(联合操作)┃,(逗号运算符)┃最低━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━2.1选择(分支)结构2.1.2if()…else结构C中条件语句的一般形式为:if(表达式)语句1;else语句2;上述结构表示:如果表达式的值为非0(true)即真,则执行语句1,执行完语句1从语句2后开始继续
10、向下执行;如果表达式的值为0(false)即假,则跳过语句1而执行语句2。所谓表达式是指关系表达式和逻辑表达式的结合式。注意:1.条件执行语句中“else语句2;”部分是选择项,可以缺省,此时条件语句变成:if(表达式)语句1;表示若表达式的值为非0则执行语句1,否则跳过语句1继续执行。2.如果语句1或语句2有多于一条语句要执行时,必须使用"{"和"}"把这些语句包括在其中,此时条件语句形式为:if(表达式){语句体1;}else{语句体2;}2.1选择(分支)结构2.1.2if()…else结构注意:if(表达式){语句体1;}el
11、se{语句体2;}3.条件语句可以嵌套,这种情况经常碰到,但条件嵌套语句容易出错,其原因主要是不知道哪个if对应哪个else。例如:if(x>20
12、
13、x<-10)if(y<=100&&y>x)printf("Good");elseprintf("Bad");对于上述情况,C规定:else语句与最近的一个if语句匹配,上例中的else与if(y<=100&&y>x)相匹配。为了使else与if(x>20
14、
15、x<-10)相匹配,必须用花括号。如下所示:if(x>20
16、
17、x<-10){if(y<=100&&y>x)printf("Good"
18、);}elseprintf("Bad");2.1选择(分支)结构2.1.2if()…else结构例2.1符号函数intmain(void){floatx;inty=-1;printf(“inputx:”);scanf(“%f”,&x);if(x!=0){if(x>0)y=1;}elseprintf(“x=%6.2f,y=%d”,x,y);}f(x)=1(x>0)0(x=0)-1(x<0)2.1选择(分支)结构2.1.3条件运算符与条件表达式条件表达式:e1?e2:e3例如:a=((x>0)?(x++):(x--))相当于if(
19、x>0)a=x++;elsea=x--;2.1选择(分支)结构2.1.2if()…else结构例2.2数据分段处理,0-49为A段,50-119为B段,120-169为C段intmain(void){inty;charr