/**
* Java流程控制语句结构(一)
* 流程控制语句结构分为:
* 1、顺序结构:从上到下依次执行
* 2、分支结构:多个分支选择其中一个分支执行
* 3、循环结构:重复执行某些代码
*
* 分支结构:根据条件选择性的执行某些代码
* 1、条件判断:if...else系列
* 2、选择结构:switch...case系列
*
* 1、分支结构:
* 1.1、单分支结构:一个 if 语句包含一个布尔表达式和一条或多条语句。
* 语法格式:
* if(条件表达式){
* 当条件表达式成立(true)时需要执行的语句块;
* }
* 执行过程:条件成立,就执行{}其中的语句块,不成立就不执行。
* 注意:
* (1)if(条件表达式)中的条件表达式的结果必须是boolean类型
* (2)当{}中的语句只有一个语句(简单的语句,也可以是一个复合语句)时,可以省略{},但是我们不建议省略
*
* 1.2、双分支结构:if 语句后面可以跟 else 语句,当 if 语句的布尔表达式值为 false 时,else 语句块会被执行
* 语法格式:
* if(条件表达式){
* 当条件表达式成立(true)时需要执行的语句块1;
* }else{
* 当条件表达式不成立(false)时需要执行的语句块2;
* }
* 执行过程:当条件表达式成立(true)时执行语句块1,否则执行语句块2
* 注意:
* (1)if(条件表达式)中的条件表达式的结果必须是boolean类型
* (2)当{}中的语句只有一个语句(简单的语句,也可以是一个复合语句)时,可以省略{},但是我们不建议省略*
*
* 1.3、多分支结构:if...else if...else 语句
* 语法格式:
* if(条件表达式1){
* 当条件表达式1成立的时候,执行的语句块1;
* }else if(条件表达式2){
* 当条件表达式1不成立,
* 条件表达式2成立的时候,执行的语句块2;
* }else if(条件表达式3){
* 当条件表达式1不成立,
* 条件表达式2也不成立,
* 条件表达式3成立的时候,执行的语句块3;
* }
* ...
* else{
* 当以上所有的条件表达式都不成立,需要执行的语句块n+1;
* }
* 执行过程:
* (1)多个条件顺序往下判断,如果上面有一个条件成立了,下面的条件就不看了
* (2)多个分支也只会执行其中的一个
* 注意:
* (1)每一个条件表达式都必须是boolean值
* (2)当{}中只有一个语句时,也可以省略{},但不建议省略
* (3)当多个条件是“互斥”关系(没有重叠部分),顺序可以随意;
* 当多个条件是“包含”关系(有重叠部分),顺序不能随意,小的在上,大的在下面
* (4)使用 if,else if,else 语句的时候,需要注意下面几点:
* if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。
* if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。
* 一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。
*
* 嵌套的 if…else 语句:
* 使用嵌套的 if…else 语句是合法的。也就是说你可以在另一个 if 或者 else if 语句中使用 if 或者 else if 语句
* 语法格式:
* if(布尔表达式 1){
* 如果布尔表达式 1的值为true执行代码
* if(布尔表达式 2){
* 如果布尔表达式 2的值为true执行代码
* }
* }else{
* if(布尔表达式 2){
* 如果布尔表达式 2的值为true执行代码
* }
* }
* 执行过程:
* 当嵌套在if中,就是当外面的if成立时,才会看里面的条件判断;
* 当嵌套在else中,就当外面的else满足时,才会看里面的条件判断;
*
* 2、选择结构
* 2.1、switch case语句:switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
* 语法格式:
* switch(表达式){
* case 常量值1:
* 语句块1;
* 【break;】
* case 常量值2:
* 语句块2;
* 【break;】
* ...
* 【default:
* 语句块n+1;
* 【break;】
* 】
* }
* 执行过程:
*(1)入口
* ①当switch(表达式)的值与case后面的某个常量值匹配,就从这个case进入;
* ②当switch(表达式)的值与case后面的所有常量值都不匹配,寻找default分支进入;
*(2)一旦从“入口”进入switch,就会顺序往下执行,直到遇到“出口”
*(3)出口:
* ①自然出口:遇到了switch的结束
* ②中断出口:遇到了break等
* 注意:
* (1)switch(表达式)的值的类型,只能是:
* 4种基本数据类型(byte,short,int,char,Character,Byte,Short,Integer),两种引用数据类型(枚举enum、String)
* Character, Byte, Short, Integer:分别是char, byte, short, int 在java中实现为对象类型的包装类
* (2)case后面必须是常量值,而且不能重复。
* switch case执行时,一定会先进行匹配,匹配成功返回当前case的值,再根据是否有break,判断是否继续输出,或是跳出判断。
* 如果 case 语句块中没有 break 语句时,JVM 并不会顺序输出每一个 case 对应的返回值,而是继续匹配,匹配不成功则返回默认 case。
* 如果 case 语句块中没有 break 语句时,匹配成功后,从当前 case 开始,后续所有 case 的值都会输出。
*
*/