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 总结

  现在我们已经做好了准备,以使自己更靠近面向对象程序设计的世界。

posted @ 2018-02-28 18:13  JackYgy  阅读(113)  评论(0)    收藏  举报