Java编程思想-第4章 控制执行流程(要点)
就像有知觉的生物一样,程序必须在执行过程中控制它的世界,并做出选择。在Java中 你要使用执行控制语句来做出选择。
Java使用了C的所有流程控制语句,所以如果读者以前用过C或C++编程,那么应该非常熟 悉了。大多数过程型编程语言都具有某些形式的控制语句,它们通常在各种语言间是交迭的。 在Java中,涉及的关键字包括 if-else、 while、do-while、for、 return、 break以及选择语句 switch 然而,Java并不支持goto语句(该语句引起许多反对意见,但它仍是解决某些特殊问题的最便利 的方法)。在Java中,仍然可以进行类似goto那样的跳转,但比起典型的goto,有了很多限制。
4.3.3逗号操作符
本章前面已经提到了逗号操作符(注意不是逗号分隔符,逗号用作分隔符时用来分隔函数 的不同参数),Java里唯一用到逗号操作符的地方就是for循环的控制表达式。在控制表达式的初 始化和步进控制部分,可以使用一系列由逗号分隔的语句;而且那些语句均会独立执行。
4.4 Foreach语法
Java se5引引入了一种新的更加简洁的for语法用于数组和容器(在第16章与第17章中将更多 地讨论这种语法),即 foreach语法,表示不必创建int变量去对由访问项构成的序列进行计数 foreach将自动产生每一项
4.5 return
在Java中有多个关键词表示无条件分支,它们只是表示这个分支无需任何测试即可发生。 这些关键词包括 return、 break、 continue和一种与其他语言中的got类似的跳转到标号语句的 方式 return关键词有两方面的用途:一方面指定一个方法返回什么值(假设它没有void返回值),另 方面它会导致当前的方法退出,并返回那个值。
4.6 break和 continue
在任何迭代语句的主体部分,都可用 break和 continue控制循环的流程。其中, break用于强 行退出循环,不执行循环中剩余的语句。而 continue则停止执行当前的迭代,然后退回循环起始 处,开始下一次迭代。
如果没有 break outer语句,就没有办法从内部循环里跳出外部循环。这是由于 break本身只 能中断最内层的循环( continue同样也是如此)。 当然,如果想在中断循环的同时退出,简单地用一个 return即可。 下面这个例子向大家展示了带标签的 break以及 continue语句在while循环中的用法:
//: control/LabeledWhile java
// while loops with " labeled break"and "labeled continue."
import static net mindview util. Print.*;
public class LabeledWhile{
public static void main (String[] args){
int i = 0;
outer:
while(true){
print("Outer while loop");
while(true){
i++;
print("i = " + i);
if(i == 1){
print("continue");
continue;
}
if(i == 3){
print("continue outer");
continue outer;
}
if(i == 5){
print("break");
break;
}
if(1 == 7){
print ("break outer");
break outer;
}
}
}
}
}
/* Output:
outer while loop
i = 1
continue
i = 2
i = 3
continue outer
Outer while loop
i = 4
i = 5
break
Outer while loop
i = 6
i = 7
break outer *///:
同样的规则亦适用于 while:
1)一般的 continue会退回最内层循环的开头(顶部),并继续执行。
2)带标签的 continue会到达标签的位置,并重新进入紧接在那个标签后面的循环。
3)一般的 break会中断并跳出当前循环。
4)带标签的 break会中断并跳出标签所指的循环。
要记住的重点是:在Java里需要使用标签的唯一理由就是因为有循环嵌套存在,而且想从 多层嵌套中 break或 continue。
4.9 总结
现在我们已经做好了准备,以使自己更靠近面向对象程序设计的世界。

浙公网安备 33010602011771号