好程序员大数据教程分享大数据之流程控制,程序在运行的时候, 对代码执行的先后顺序, 称作程序的执行结构. 在Java中, 程序的执行结构分为三种:

顺序结构: 代码从上往下逐行执行, 是程序执行的基本结构
分支结构: 代码执行到某一个节点遇到多个分支, 选择其中的一个分支执行, 其他的分支都不执行
循环结构: 某一个代码段需要重复的执行
程序默认采用的是顺序结构, 我们也可以通过一些语句来修改程序的执行结构, 这样的语句叫做流程控制语句, 按照修改的执行结构不同, 可以分为 分支流程控制 和 循环流程控制

1.3.1 分支流程控制--if
基础语法

if (condition) {
// 代码段1
}
else {
// 代码段2
}
逻辑: condition是一个boolean类型的变量, 或者一个boolean结果的表达式. 如果condition的值为true, 则代码段1执行, 否则, 代码段2执行

进阶

if (condition1) {
// 代码段1
}
else if (condition2) {
// 代码段2
}
else {
// 代码段3
}
逻辑: 先判断condition1, 如果condition1成立, 执行代码段1; 如果condition1不成立, 再判断condition2, 如果condition2成立, 执行代码段2, 否则执行代码段3

特殊说明

在if-else语句中, 如果某一个代码段中只有一句语句, 则大括号可以省略; 但是从语法的规范来说, 一般情况下, 我们是不省略的

1.3.2 分支流程控制--switch
基础语法

switch (variable) {
case value1:
case value2:
...
default:
}
逻辑: variable是一个变量, switch语句捕获这个变量的值; 如果变量的值和某一个case后面的值相同了, 就会执行这个case后面的语句; 如果变量的值没有和任意的一个value相同, 则执行default后面的值

注意事项

在switch-case语句中有穿透性, 即: 如果variable的值和某一个value匹配了, 会执行从这个case开始, 一直到switch语句结束, 后面所有的代码, 且跳过后面的case匹配; 为了避免穿透, 可以使用关键字break来跳出switch语句

1.3.3 循环流程控制--while
基础语法

while (condition) {
// 循环体
}
逻辑: 每次循环线判断condition, 如果为true, 循环体执行, 然后再判断condition; 直到condition为false, 循环结束

do-while

do {
// 循环体
} while (condition);
逻辑: 先执行一次循环体, 然后再判断循环条件是否成立

关键字 break, continue 与 循环标签

break

用在循环中, 表示跳出循环; 如果用在多层循环中, 只会跳出当前的一层循环

continue

用在循环中, 表示继续循环, 从continue开始, 后面所有的代码不执行, 直接进入下次循环

循环标签

一般用在多层循环中, 可以给每一个循环都添加一个标签; 可以配合break语句, 直接结束指定的循环. 或者配合continue语句, 直接终止指定循环的执行, 立即进入下次循环

1.3.4 循环流程控制--for
基础语法

for (循环起点; 循环条件; 循环步长) {
循环体
}
逻辑:

先执行循环起点, 一般用与定义一个控制循环的变量, 或者给这个变量一个初始值

再判断循环条件是否成立, 如果循环条件成立, 执行循环体, 再执行循环步长, 然后重新判断循环条件

如果循环条件不成立, 循环结束

特殊说明

关于语法省略

for循环的小括号中由三部分组成, 这三个部分都可以省略:
循环起点: 变量的定义可以放在循环外
循环条件: 如果省略, 默认是true, 可以在循环体中控制跳出循环
循环步长: 可以在循环体中控制步长
关于大括号

如果循环体中只有一句语句, 循环体大括号可以省略; 但是出于规范, 一般我们也不省略