Java编程思想之四控制执行流程

时间:2021-10-19 05:10:40

程序必须再执行过程中控制它的世界,并做出选择。在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语句里不会工作。