一、为什么C/C用顺序结构、选择结构、循环结构就能实现所有功能
其实只是说结构化语言,可以用顺序结构、选择结构、循环结构来描述全部的算法而已。
顺序结构:从头到尾一句接着一句的执行下来,直到执行完最后一句;
选择结构:到某个节点后,会根据一次判断的结果来决定之后向哪一个分支方向执行;
循环结构:循环结构有一个循环体,循环体里是一段代码。对于循环结构来说,关键在于根据判断的结果,来决定循环体执行多少次;
注:在逻辑上有一种bool类型(也叫boolean类型,布尔类型),只有两个值,即真和假。C语言的判断表达式最终的值就是一个bool类型,这个判断表达式的bool值就决定了选择结构如何选择,循环结构如何循环。
需要编程解决的问题逻辑纷繁复杂,程序设计语言里面为什么只有三种基本的程序结构就够用了?
对于程序设计语言中的三种基本结构:顺序、选择、循环,大家应该都比较熟悉了,确实也只有这些。
其实,这个问题是经过严格证明过的。1966年,计算机科学家 Bohm 和 Jacopini 证明了这样的事实:任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种基本结构组合而成。所以,这三种结构就被称为程序设计的三种基本结构。也是 结构化程序设计 必须采用的结构。想详细了解的可以去看下论文:Bohm C., Jacopini G. “Flow diagrams, Turing machines and languages with only two formation rules.” Communications of the Association for Computing Machinery, Vol.9, pp. 366–371. 1966.
荷兰学者Dijkstra1968年提出了“结构化程序设计”的思想,它规定了一套方法,使程序具有合理的结构,以保证和验证程序的正确性,这种方法要求程序设计者不能随心所欲地编写程序,而要按照一定的结构形式来设计和编写程序,它的一个重要目的是使程序具有良好的结构,使程序易于设计,易于理解,易于调试修改,以提高设计和维护程序工作的效率。
结构化程序规定了以下三种基本结构作为程序的基本单元: 以上三种基本结构可以派生出其它形式的结构.由这三种基本结构所构成的算法可以处理任何复杂的问题.所谓结构化程序就是由这三种基本结构所组成的程序.可以看到,三种基本结构都具有以下特点:①有一个入口.②有一个出口.③结构中每一部分都应当有被执行到的机会,也就是说,每一部分都应当有一条从入口到出口的路径通过它(至少通过一次).④没有死循环(无终止的循环).
按结构化程序设计方法设计出的程序优点是:结构良好、各模块间的关系清晰简单、每一模块内都由基本单元组成。这样设计出的程序清晰易读,可理解性好,容易设计,容易验证其正确性,也容易维护。同时,由于采用了“自顶向下、逐步细化”的实施方法,能有效地组织人们的智力,有利于软件的工程化开发。
延伸阅读:
二、goto语句
C语言提供了可以使用的goto语句和标记跳转的标号。理论上goto语句没有使用必要(容易代码逻辑错造成随意跳转),但在深层循环嵌套使用break达不到目的。而可以使用goto可以解决
语法
标号:
语句;
if(表达式)
goto 标号;
标号:表达需要跳转的位置
goto 标号:跳到哪个标号去