Thinking In Java笔记(第四章 控制执行流程)
2015-04-29 10:15
399 查看
第四章 控制执行流程
Java中使用了C的所有流程控制语句。在Java中涉及的关键字包括if-else,while,do-while,for,return,break,continue以及选择语句switch。然而Java不支持goto语句(该语句引起了许多的反对意见),但是Java仍然可以类似goto那样跳转。4.1 True和False
所有的条件语句都利用条件表达式的真假来决定执行的路径。Java中不允许我们将一个数字作为boolean值使用,虽然C和C++中是允许的(“非零”为真,”零”为假)。4.2 if-else
if-else语句是控制程序流程最基本形式。其中else是可选的。有如下两种使用的方式:if(boolean-exp){ ... } if(boolean-exp){ ... } else { ... }
4.3迭代
while,do-while,for用来控制循环,有时将她们划分为迭代语句(iteration statement)。语句会重复执行直到条件满足或者条件不满足。while语句的格式如下:while(boolean-exp){ ... }
再循环刚开始的时候,会计算一次boolean-exp的值,而在语句的下次迭代开始前会再计算一次。
4.3.1 do-while
do-while和while唯一区别就是do-while中的语句至少会执行一次。4.3.2 for循环
for循环在第一次迭代之前要进行初始化,之后会进行条件测试,每次循环结束之后都以某种方式步进。4.3.3 逗号操作符
逗号操作符(不是逗号分隔符),Java中唯一用到逗号操作符的地方就是for循环的控制表达式。在控制表达式的初始化和步进控制部分,可以使用一系列的逗号分隔的语句;4.4 Foreach语法
Java SE5引入了一种更加简洁的for语句用于数组和容器,能简易的遍历每一项。public class Test{ public static void main(String[] args){ Random rand = new Random(47); float f[] = new float[10]; for(int i = 0; i < 10; i ++) f[i] = rand.nextFloat(); for(floar x : f) System.out.println(x); } }
foreach语句能试用于任何的实现了Iterable接口的对象。使用foreach不仅在录入代码时可以节省时间,更重要的是,它阅读起来也要容易得多,它阅读起来也要容易得多,阅读起来能让人明白正在做什么,而不是类似于
for(int i=0; i<100;i++)的告诉人如何做的细节。
4.5 return
Java中有如下几个关键词表示无条件跳转,return、break、continue和一种类似于其他语言中goto的标记。return有两方面的用途:
一方面指定一个方法返回什么值(假设它没有void返回值)
另一方面会导致当前的方法退出,并返回那个值。
4.6 break和continue
在任何迭代语句的主体部分,都可用break和continue控制循环的流程。break关键字用于强行退出循环,不执行循环中剩余的部分。continue则是停止当前执行的一次循环,直接开始下一次的循环迭代。下面的例子:public class Test { public static void main(String[] args) { for(int i=0; i<100; i++) { if(i == 74) break; if(i%9 != 0)continue; System.out.println(i + " "); } } }
上面的输出结果为:
0 9 18 27 36 45 54 63 72
到74的时候就break出来了,而当i不能被9整除时,continue(也就是继续下一次循环)。
4.7 臭名昭著的goto
goto语句实际上起源于汇编程序的程序控制: 若条件A成立,则跳到这里;否则跳到那里。如果阅读由编译器最终生成的汇编代码,就会发现程序控制里面包含了很多的跳转。(Java编译器生成它自己的”汇编代码”,运行在Java虚拟机上面,而不是直接在cpu硬件上面的)。goto是在源码级上面的跳转。不多介绍了,最好不用,用了会使源代码变的很难阅读。
4.8 switch
switch有时也被规划成一种选择语句。根据整数表达式的值,switch语句可以从一系列代码中选出一段去执行,格式如下:switch(integeral-selector) { case integral-value1 : statement1 ; break; case integral-value2 : statement2 ; break; case integral-value3 : statement3 ; break; default: statement4; }
integeral-selecotr是一个能够产生整数值的表达式,switch能将这个结果与每个integral-value(整数值)相比较。若发现相符的,就执行下面对应的语句。若没发现相符的语句,就执行default中包含的语句块。
每个case最后都有一个break;语句这样可以使执行流程跳转到switch主体的末尾。如果case中没有break,则会继续执行后面的case语句,不管是否满足case,直到遇见第一个break;为止。
相关文章推荐
- thinking in java 笔记 思维导图 第四章 控制执行流程
- 【Thinking In Java】笔记之二 控制执行流程
- thinking in java笔记 4 控制执行流程
- thinking in java笔记 4 控制执行流程
- thinking in java 学习笔记(二)之控制执行流程
- Thinking in JAVA笔记——第三章 操作符 &第四章控制执行流程
- Thinking in Java——第四章-控制执行流程
- 读thinking in java笔记(三):控制执行流程
- Thinking In Java 第四章 控制执行流程
- Thinking in Java 第四章 控制执行流程
- 控制执行流程 Thinking in Java 第四章
- Java编程思想第四版-第四章(控制执行流程 )笔记
- Thinking in Java 读书笔记 第四章 控制执行流程
- java 编程思想的学习笔记 - 第三章 操作符 第四章 控制执行
- Java笔记整理:控制执行流程
- 【Thinking in Java】控制执行流程
- [Java编程思想-学习笔记]第4章 控制执行流程
- Java - Thinking in Java 第4章 控制执行流程
- thinking in java 笔记之控制程序流程
- 【慕课笔记】第四章 流程控制语句 第1节 JAVA条件语句之if