Java编程思想第四章

这一章主要讲了控制执行流程的语句,if-else、switch、break、continue、for、while、do-while、foreach、return以及不怎么实用的标签跳转,大部分都是老朋友了,在这只记录一下不太熟悉的标签跳转吧。

标签是后面跟有冒号的标识符,就像下面这样:
label1:
在Java中,标签起作用的唯一的地方刚好是在迭代语句之前。“刚好之前”的意思表明,在标签和迭代之间置入任何语句都不好。

break和continue通常只中断当前循环,配合标签便可以中断循环,直到标签所在的地方。
代码演示:

label1:
outer-iteration{
	inner-iteration{
		//...
		break;//(1)
		//...
		continue;//(2)
		//...
		continue label1;//(3)
		//...
		break lebel1;//(4)
	}
}

在(1)中,break中断了内部循环,调到外部循环(break只能中断它所在的循环);在(2)中,continue跳过了内部循环的剩余部分,回到内部循环起始处开始下一次循环;在(3)中,continue label1同时中断两层循环,直接跳转到label1处,从外部循环开始继续执行循环;在(4)中,break label1也是中断两层循环并跳转到label1处,但它不会重新进入循环,也就是直接跳出两层循环。

总结:

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

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


代码书写世界,吉他演奏生活