1 分支结构
1.1 什么是分支结构
任何复杂的程序逻辑都可以通过“顺序”、“分支”、“循环”三种基本的程序结构实现。
程序可以在运行过程中,根据不同的条件运行不同的语句。
当条件满足时运行某些语句;
当条件不满足时则不运行这些语句 – if结构。
当条件满足时运行某些语句;
当条件不满足时运行另外一些语句 – if-else结构。
1.2 if语句
if语句的执行逻辑:
语句0;
语句3;
- 执行语句0;
- 判断逻辑表达式的值:
若值为true,则执行if语句块中的语句;
若值为false,则不执行if语句块中的语句; - 执行语句3。
if语句流程图:
当条件满足时,执行语句块,然后执行if语句下面的语句;
否则跳过语句块,直接执行if语句下面的语句。
1.5 if-else语句
语句0;
语句3; - 执行语句0;
- 判断逻辑表达式的值:
若值为true,则执行语句块1;
若值为false,则执行语句块2; - 执行语句3。
- if-else语句流程图:
当条件满足时,执行语句块1,然后执行if-else语句下面的语句;
否则执行语句块2,再执行if-else语句下面的语句。
1.7 else if语句
当程序的分支数大于2时,可以用if-else嵌套的方式解决,即:else语句块中又包含if语句(或if-else语句)。
事实上,else if结构就是if else嵌套的简便写法:
1.9 switch-case语句
switch-case语句是一种特殊的分支结构,可以根据一个整数表达式的不同取值,从不同的程序入口开始执行。
通常case1、case2、…、caseN对应完全不同的操作,可以和break语句配合使用,执行完相应语句后即退出switch块,不继续执行下面的语句。
优势:
switch-case常常和break语句结合使用实现分支的功能。
switch-case在实现分支功能时和if-else的主要区别在于:switch-case结构的效率更高、结构更清晰。
从JDK 7.0开始,switch-case支持字符串表达式。
2 循环结构
2.1 什么是循环
循环是程序设计语言中反复执行某些代码的一种计算机处理过程,是一组相同或相似语句被有规律的重复性执行。
循环的要素:
– 循环体(相同或相似的语句)
– 循环条件(继续执行循环的条件,某些情况下循环条件以循环次数的方式体现)
2.2 while语句
while语句的执行逻辑 - 计算boolean表达式的值
- 如果值为true则执行语句块;语句块执行完后再次判断boolean表达式的值,如果为true则继续执行语句块;如此循环往复,直到boolean为false时退出while循环。
while语句的流程图
需要注意:一般情况下,循环操作中会存在使得循环条件不满足的可能性,否则将成为“死循环”。
2.4 do-while语句
do-while语句的执行逻辑 - 先执行语句块
- 再计算boolean表达式的值,如果值为true,再次执行语句块;如此循环往复,直到boolean为false为止。
do-while语句的流程图
2.5 while和do-while语句的区别
while循环先判断再执行;
do-while循环先执行一次,再判断;
当初始情况不满足循环条件时,while循环一次都不会执行;do-while循环不管任何情况都会至少执行一次。
while和do-while语句的不同仅仅体现在第一次就不满足条件的循环中;如果不是这样的情况,while和do-while可以互换。