第四章 控制执行流程
标签(空格分隔): AgainThinkingInJava
挑出几个似乎已经忘记了的点
- 自动生成恰当的数组
range()
- goto语句的标签
- if语句与switch语句的执行顺序与选择问题
- 课后题斐波那契和吸血鬼数的思考
自动生成恰当的数组range()
range()
主要是配合Foreach
语句。当然该方法主要是产生一个int数组
range(10)
会产生一个大小为10的int数组
要使用这样一个方法就要引用作者的包
for (int i:range(10)){
System.out.println(i);
}
多个重载版本
range(5,10) 5.。。9
range(5,20,3) 5....19 step 3
range()一般会降低效率,于是作者提到在性能调优的时候使用仿真器来综合评价。
goto语句的标签
我总觉得这样多重的标签嵌套会使得代码非常不易阅读,因此不打算在代码中使用这种标签,事实上我还没有在其他代码中见过人家怎么使用的。因此只要知道使用
使用标签的唯一理由就是因为有循环嵌套存在,而且想从多层的嵌套中break和continue.
if语句与switch语句的执行顺序与选择问题
switch
语句是从头到尾的所有case都要判断一句,同样,if语句也是从开始位置执行,从头到尾的判断条件。
至于有一种让判断他们的效率问题的说法,我觉得从某种角度来说没有什么可比性。switch与多个if else 语句的执行情况是差不多的。
不同的地方在于,switch语句的使用范围相对来说比较狭窄,主要使用在选择因子是int或者char类型的整数值的时候。但是if else语句使用就比较灵活的,场合多多的。
课后题斐波那契和吸血鬼数的思考
斐波那契的实现是递归,但是这种方式是效率最低的。我找了一下有很多基本的实现方式
斐波那契序列的七种实现吸血鬼数,。,。没错,人家使用了一个叫什么什么理论的东西
if x*y is a vampire number then x*y=x+y(mod 9 )
国际惯例:总结
好像没有什么能总结的