thinking in java笔记 4 控制执行流程
- 逻辑
java不允许将一个数字作为布尔值使用。
- 迭代
while do-while的唯一区别是do-while中的语句至少会执行一次。
for(;;)三个部分都可以为空,等同于while(true),java中唯一用到逗号操作符的就是for循环的控制表达式。
任何返回一个数组的方法都可以使用foreach,foreach还可用于任何Iterable对象。
语法为int f[]=new int[10]; ....... for(int i:f)
- 跳转
在任何迭代语句的主体部分,都可用break和continue控制循环的流程。可搭配标签使用实现goto的效果。
label1:
out-iteration{
inner-iteration{
//...
break; //(1)
//...
continue; //(2)
//...
continue label1; //(3)
//...
break label1; //(4)
}
}
out-iteration{
inner-iteration{
//...
break; //(1)
//...
continue; //(2)
//...
continue label1; //(3)
//...
break label1; //(4)
}
}
(1)break中断内部迭代,回到外部迭代
(2)continue使执行点回到内部迭代的起始处
(3)continue label1同时中断内部迭代及外部迭代,转到label1处,接着从外部迭代继续。
(4)break label1也会中断所有迭代,并回到label1处,但并不重新进行迭代。
java里使用标签的唯一理由是因为有循环嵌套存在,而且想从多层嵌套中break或continue。
- switch
根据整数表达式的值,选择一段代码去执行。switch语句实现多路选择,但它要求使用一个选择因子,并且必须是int和char那样的整数值,对于非整数类型,必须使用一系列if语句 。但也可以使用enum和switch一起来实现这种情况。case语句能够堆叠在一起,为一段代码形成多重匹配,即只要符合多种条件中的一种,就执行那段特别的代码。