天天看点

Java编程思想 控制执行流程总结

true和false

Java不允许我们将一个数字作为布尔值使用 在C和C++里是允许的(真 是非零 而 假 是零)

if-else

Java编程思想 控制执行流程总结

else if 并非新的关键字 而仅仅只是一个else后面紧跟另一个新的if语句

迭代

Java编程思想 控制执行流程总结
Java编程思想 控制执行流程总结

while和do-while唯一的区别就是do-while中的语句至少会执行一次 即便表达式第一次就被计算为false 而在while循环结构中 如果条件第一次就为false 那么其中的语句根本不会执行 在实际应用中 while比do-while更常用一些

for循环可能是最经常使用的迭代形式 这种在第一次迭代之前要进行初始化

Java编程思想 控制执行流程总结

初始化(initialization)表达式 布尔表达式(Boolean-expression) 或者步进(step)运算 都可以为空 每次迭代前会测试布尔表达式 若获得的结果是false 就会执行for语句后面的代码行 每次循环结束 会执行一次步进 for循环常用于执行 计数 任务

逗号操作符 在控制表达式的初始化和步进控制部分 可以使用一系列由逗号分隔的语句 而且那些语句均会独立执行

通过使用逗号操作符 可以在for语句内定义多个变量 但是它们必须具有相同的类型

Foreach语法

for(float x : f) {}

这条语句定义了一个float类型的变量x 继而将每一个f的元素赋值给x

任何返回一个数组的方法都可以使用foreach

return

return关键词有两方面的用途:一方面指定一个方法返回什么值(假设它没有void返回值) 另一方面它会导致当前的方法退出 并返回那个值

break和continue

在任何迭代语句的主体部分 都可用break和continue控制循环的流程 其中 break用于强行退出循环 不执行循环中剩余的语句 而continue则停止执行当前的迭代 然后退回循环起始处 开始下一次迭代

无穷循环 while(true) 或者 for(;?

臭名昭著的goto

若条件A成立 则跳到这里 否则跳到那里

Java没有goto

标签 标签是后面跟有冒号的标识符 label1:

Java编程思想 控制执行流程总结

在(1)中 break中断内部迭代 回到外部迭代 在(2)中 continue使执行点移回内部迭代的起始处 在(3)中 continue label1同时中断内部迭代以及外部迭代 直接转到label1处 随后 它实际上是继续迭代过程 但却从外部迭代开始 在(4)中 break label1也会中断所有迭代 并回到label1处 但并不重新进入迭代 也就是说 它实际是完全中止了两个迭代

  1. 一般的continue会退回最内层循环的开头(顶部) 并继续执行
  2. 带标签的continue会到达标签的位置 并重新进入紧接在那个标签后面的循环
  3. 一般的break会中断并跳出当前循环
  4. 带标签的break会中断并跳出标签所指的循环

在Java里需要使用标签的唯一理由就是因为有循环嵌套存在 而且想从多层嵌套中break或continue

switch

switch有时也被划归为一种选择语句 根据整数表达式的值 switch语句可以从一系列代码中选出一段去执行

Java编程思想 控制执行流程总结

其中 Integral-selector(整数选择因子)是一个能够产生整数值的表达式 switch能将这个表达式的结果与每个integral-value(整数值)相比较 若发现相符的 就执行对应的语句(单一语句或多条语句 其中并不需要括号) 若没有发现相符的 就执行default(默认)语句

在上面的定义中 break可使执行流程跳转至switch主体的末尾 若省略break 会继续执行后面的case语句 直到遇到一个break为止

选择因子必须是int或char那样的整数值 以及enum