任何一个接触过编程的人都应该知道程序的三种基本结构:顺序、选择、循环。基本上所有的现代编程语言都支持着三种结构,不同的是每种语言都有自己的实现方式。无关好坏,语言特性使然。
顺序结构
顺序结构是最简单,也最符合人的思维方式的一种结构,跟面向过程编程是一样的逻辑思维:从上到下,从左到有依次有序的执行代码。
选择结构
选择结构也称为分支结构,就是在众多的决策中选择一个决策然后执行。Java提供了两种类型的选择结构:if-else/if-else if-else,switch。
在if-else/if-else if-else的结构中,只要判断条件的结果是布尔类型就可以。这种结构只会选择其中的一个分支执行,如果没有最后的else,可能任何一个分支都不会执行。
switch 可以使用的数据类型包括所有的基本数据类型,jdk1.7之后可以也可以是字符串类型以及枚举类型。每一个case语句最后都必须有一个break;语句,不然会在匹配到指定case后一直往后执行,直到遇见break;或者到达switch末尾。
循环结构
循环就是对多个数据执行相同的逻辑。Java中提供了三种循环:for, while, do..while。
for循环主要用来执行循环次数已知的逻辑,其中的三个语句都是可选的。如果三个语句都没有,就是一个死循环。语法:for(init;condition;post-condition){statements}
while/do..while 主要用来执行循环次数未知,但是能知道执行条件的循环。不同的地方在于do..while至少执行一次。
递归结构
递归严格来接并不能算是程序结构,但是在解决特定问题的时候,用递归确实能写出简洁优雅的代码,所以在此说明一下。
递归就是函数调用自身,如果没有调用的终止条件,最终会出现StackOverFlow,同样没有终止条件的递归也是没有意义的。递归最重要的三点:递归函数的定义,返回值的意义,进行的操作;把这三点搞明白,递归就是工具箱里的利器。