Java 使用条件语句和循环语句控制流程。
1 块作用域
块(block、复合语句),由一对花括号括起来,确定了变量的作用域。
不能在嵌套的块中声明同名的变量。
2 条件语句
if else if
3 循环
while
do while
4 确定循环
for(初始化;检查;更新)
警告:循环中检测两个浮点数是否相等时要格外小心,由于舍入可能得不到精确值。
5 多重选择:switch 语句
switch 从与选项值相匹配的 case 标签开始执行直到遇到 break 语句,或者执行到 switch 语句的结束处为止。如果没有相匹配的 case 标签,而有 default 语句,就执行这个子句。
如果不用 break ,可能会造成 case 渗透,是很严重的问题。
switch(expr) 中 的 expr
- Java 7 以前:只能是 byte、short、char、int、enum 类型
- Java 7 开始:新增 String 类型(内部实现是在 switch 中使用字符串的 hash code)
- switch 不支持 long,是因为 switch 的设计初衷是对那些只有少数几个值的类型进行等值判断,如果值过于复杂,那么还是用 if 比较合适。
6 中断控制流程语句
6.1 break
对于任何使用 break 语句的代码都需要检测循环是正常结束,还是由 break 跳出。
带标签的 break ,类似 goto,标签必须放在希望跳出的最外层循环之前,紧跟一个冒号。跳转到带标签的语句块末尾。
6.2 continue
带标签的 continue,跳转到带标签的循环首部。