第4章 控制执行流程

迭代

while循环表达式:只要condition()返回true,就重复执行循环体中的语句。

do-while循环表达式:do-while中的语句至少会执行一次。

for循环表达式:初始化表达式,布尔表达式,或者步进运算。(都可以为空)

无论是在初始化还是步进部分,语句都是顺序执行的。

初始化部分可以有任意数量的同一类型的定义。

for(int i = 1, j = i + 10; i < 5; i ++, j = i * 2) {

  System.out.println("i = " + i + " j = " + j);

}

输出结果:

i = 1 j = 11

i = 2 j = 4

i = 3 j = 6

i = 4 j = 8 

 

Foreach语法

任何返回一个数组的方法都可以使用foreach。

foreach还可以用于任何Iterable对象。

 

return

return的用途:

1.指定一个方法返回什么值(假设它没有void返回值)。

2.它会导致当前的方法退出,并返回那个值。

 

如果在返回void的方法中没有return语句,那么在该方法的结尾处会有一个隐式的return, 因此在方法中并非总是必须要有一个return语句。

public void testReturn() {

  ...

  return;  //编译正确,即使没有明确写出这个return语句,编译器也会隐式的添加一个return语句。

}

 

break和continue

break:用于强行退出(当前整个)循环,不执行(当前整个)循环中的剩余的语句。(双层循环,只能中断内层循环)

continue:则停止执行当前的迭代,然后退回循环起始处,开始下一次迭代。(双层循环,中断内层循环的某一次的迭代)

return:如果想在中断循环的同时退出,简单地用一个return即可。

 

标签

通过标签指定跳出循环之后的位置。使用标签的唯一理由是因为有循环嵌套存在,而且想从多层嵌套中break或continue。

1.一般的continue会退回最内层循环的开头(顶部),并继续执行。

2.带标签的continue会到达标签的位置,并重新进入紧接在那个标签后面的循环。

3.一般的break会中断并跳出当前循环。

4.带标签的break会中断并跳出标签所指的循环。

 

goto

Java不支持goto语句(但是goto的Java的保留字)

 

switch

根据整数表达式的值,switch语句可以从一系列代码中选出一段去执行。

switch(integral-selector) {

  case integral-value1 : statement; break;

  case integral-value2 : statement; break;

  case integral-value3 : statement; break;

  case integral-value4 : statement; break;

  case integral-value5 : statement; break;

  //...

  default : statement;

}

integral-selector是一个能够产生整数值得表达式,必须是intchar那样的整数值。(字符串或者浮点数是不好用的)

switch能将这个表达式的结果与每个integral-value(整数值)相比较。若发现相符的,就执行对应的语句(单一语句或多条语句,其中并不需要括号)。若没有发现相符的,就执行 default(默认)语句。

每个case均以一个break结尾,这样可使执行流程跳转至switch主体的末尾。但是break是可选的。若省略break,会继续执行后面的case语句,直到遇到一个break为止。注意最后的default语句没有break ,因为执行流程已到了break的跳转目的地,完全可以再default语句的末尾放置一个break,尽管它并没有任何实际的用处。

enum可以和switch协调工作。

 

 

posted @ 2012-11-01 10:23  小鸟犇  阅读(62)  评论(0)    收藏  举报