学习分支结构不要被分支嵌套所迷惑,只要正确绘制出流程图,弄清各分支所要执行的功能,嵌套结构也就不难了 。嵌套只不过是分支中又包括分支语句而已,不是新知识,只要对双分支的理解清楚 , 分支嵌套是不难的 。下面我介绍几种基本的分支结构 。
①if(条件)
这种分支结构中的分支体可以是一条语句 , 此时“”可以省略,也可以是多条语句即复合语句 。它有两条分支路径可选,一是当条件为真,执行分支体,否则跳过分支体 , 这时分支体就不会执行 。如:要计算x的绝对值,根据绝对值定义,我们知道,当x=0时,其绝对值不变,而x0时其绝对值是为x的反号,因此程序段为:if(x0) x=-x;
②if(条件)
else
这是典型的分支结构,如果条件成立 , 执行分支1,否则执行分支2,分支1和分支2都可以是1条或若干条语句构成 。如:求ax^2+bx+c=0的根
分析:因为当b^2-4ac=0时,方程有两个实根,否则(b^2-4ac0)有两个共轭复根 。其程序段如下:
d=b*b-4*a*c;
if(d=0)
{x1=(-b+sqrt(d))/2a;
x2=(-b-sqrt(d))/2a;
printf(“x1=%8.4f,x2=%8.4f\n”,x1,x2);
}
else
{r=-b/(2*a);
i =sqrt(-d)/(2*a);
printf(“x1=%8.4f+%8.4fi\n”r, i);
printf(“x2=%8.4f-%8.4fi\n”r,i)
}
③嵌套分支语句:其语句格式为:
if(条件1) ;
else if(条件2)
else if(条件3)
……
else if(条件n)
else
嵌套分支语句虽可解决多个入口和出口的问题,但超过3重嵌套后,语句结构变得非常复杂,对于程序的阅读和理解都极为不便,建议嵌套在3重以内,超过3重可以用下面的语句 。
④switch开关语句:该语句也是多分支选择语句,到底执行哪一块,取决于开关设置,也就是表达式的值与常量表达式相匹配的那一路 , 它不同if…else 语句,它的所有分支都是并列的,程序执行时,由第一分支开始查找,如果相匹配,执行其后的块,接着执行第2分支,第3分支……的块,直到遇到break语句;如果不匹配,查找下一个分支是否匹配 。这个语句在应用时要特别注意开关条件的合理设置以及break语句的合理应用 。
(3)循环结构:
循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do ?Cwhile循环和for循环 。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误,在学习中我们主要学习while、do…while、for三种循环 。常用的三种循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用,这就要清楚三种循环的格式和执行顺序,将每种循环的流程图理解透彻后就会明白如何替换使用,如把while循环的例题,用for语句重新编写一个程序,这样能更好地理解它们的作用 。特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环 , 这是初学者的一个常见错误 。
在学完这三个循环后,应明确它们的异同点:用while和do…while循环时,循环变量的初始化的操作应在循环体之前,而for循环一般在语句1中进行的;while 循环和for循环都是先判断表达式,后执行循环体,而do…while循环是先执行循环体后判断表达式 , 也就是说do…while的循环体最少被执行一次,而while 循环和for就可能一次都不执行 。另外还要注意的是这三种循环都可以用break语句跳出循环,用continue语句结束本次循环,而goto语句与if构成的循环,是不能用break和 continue语句进行控制的 。
推荐阅读
- 小米路由器芯片品牌怎么看,小米路由器芯片是哪里
- 路由器用什么线可以接手机,路由器接交换机用什么线
- 一张ppt如何加入多张图片,一张ppt里怎么放几张图片
- 关于棋牌游戏道具商城的信息
- php通过表单修改数据库 php表单显示数据库内容
- c语言结构体输入学生姓名,c语言用结构体输入5个学生信息在输出
- python爬虫携程,爬虫程序python
- 野马直播运营,野马现场
- php获取数据requ PHP获取数据库显示到表中