Java编程思想之四控制执行流程
程序必须再执行过程中控制它的世界,并做出选择。在Java中,你要使用执行控制语句来做出选择。
4.1true和false
所有条件语句都利用条件表达式的真或假来决定执行路径。
Java不允许使用数字作为布尔值来用
4.2 if-else
if-else语句是控制程序流程的最基本的形式。else是可选的。
4.3 迭代
while、do-while和for用来控制循环,有时将它们划分位迭代语句。语句会重复执行,知道控制作用的布尔表达式得到假结果。
4.3.1 do-while
while、do-while的唯一区别就是do-while至少会执行一次。
4.3.2 for
for循环可能是最经常使用的迭代形式,这种在第一次迭代之前要进行初始化。
for(初始化表达式;布尔表达式;步进)
4.3.3 逗号操作符
Java里唯一用到逗号操作符的地方就是for循环的控制表达式。在控制表达式的初始化和步进控制部分,可以使用一系列由逗号分隔的语句。而且这些语句会独立运行。
4.4 Foreach语法
Foreach不必创建int变量去对由访问项构成的序列进行计算,foreach将自动产生每一项。
4.5 return
两个用途:
- 指定一个方法返回什么值
- 它会导致当前方法退出
4.6 break和continue
在任何迭代语句主体部分,都可以用break和continue控制循环流程。
break用于强行退出循环,不执行剩下的语句。continue则停止执行当前的迭代,然后退出循环起始处,开始下一次迭代。
标签
Java中标签和goto机制类似
标签其作用的唯一地方就是刚好在迭代语句之前。"刚好之前"的意思是在便签和迭代之间置入任何语句都不好。而在迭代之前设置标签的唯一理由是:我们希望在其中嵌套另一个迭代或者一个开关。这是由于break和continue通常中断当前循环,如果和标签一起使用,它们就是中断循环,直到标签的所在地方。
label1:
outer-itertion{
inner-iteration{
break://中断内部迭代,回到外部迭代
continue;//执行点移到内部迭代起始点
continue label1;//中断内部迭代和外部迭代,直接转到label1处,继续执行迭代
break label1;//中断所有迭代,回到label1处,并且不在进入迭代
}
}
Java里使用标签的唯一理由是因为有嵌套循环存在,而且想从多成嵌套中break或continue 。
4.8 switch
switch有时也被划分为选择语句,使用和C#里面一致。
需要注意一点,switch选择因子必须是int或char。如果是浮点或者字符串作为选择因子,那么swich语句里不会工作。