Java语言基础17-循环执行

来源:互联网 发布:野蛮人之王升级数据 编辑:程序博客网 时间:2024/04/29 14:42
循环执行 page 17 of 37

Java(TM) 提供了 while, do-while, 和 for 语言结构来循环多次执行一个语句(或语句组)。while 是一种更常用的循环结构;for 则语法功能更强大。

循环结构 while (<布尔表达式>)
<语句组>...
do
<语句组>...
while (<布尔表达式>)
for (<初始条件>...; <布尔表达式>; <循环过程表达式>...)
<语句>...

有了循环,我们就可以让我们的狗叫个不停,令我们的邻居很沮丧:

  void bark(int times) {    while (times > 0) {      System.out.println(barkSound);      times = times - 1;    }  }

因此,用另一个 bark() 方法,我们可以支持面向对象的任务:向 Dog 的实例发送一个 bark 消息,该消息用方法定义中的 times 参数来反映消息请求 n 次叫声(bark)。

DogChorus 现在真的名符其实了:

public class DogChorus {  public static void main(String[] args) {    Dog fido = new Dog();    Dog spot = new Dog();    spot.setBark("Arf.  Arf.");    fido.bark();    spot.bark();    fido.bark(4);    spot.bark(3);    new Dog().bark(4); // unknown dog    System.exit(0);  }}

现在 DogChorus 的输出为:

Woof.Arf.  Arf.Woof.Woof.Woof.Woof.Arf.  Arf.Arf.  Arf.Arf.  Arf.Woof.Woof.Woof.Woof.

请注意程序中带注释"// unknown dog"的那行代码。正如前面讲到的,Java 是一门动态语言,此例又说明了这点。一只"未命名"被初始化了的 Dog 凭空出现(突然从天而降)加入合唱,然后无隐无踪。

也就是说,在 Java 中,我们可以随意创建类的实例,并直接使用,而不必将之赋值给一个为了将来的使用而设的引用变量(只要我们将来不需用到它)。而且,按 Java 的语法和"new <data-type>()" 的求值次序规则,我们不必将 new 操作用"()"括起来就可以实现这点。

原创粉丝点击