遇到想要的输出

时间:2013-07-21 18:01:41

标签: java

public class dog {
  String name;
  public void bark()
  {
  System.out.println(name+ "says warf!" );
  }

public static void main(String[] args) {
    dog dog1 = new dog();
    dog1.bark();
    dog1.name="bart";
    //creation of array
    dog[] dogs= new dog[3];
    //object reference
    dogs[0]= new dog();
    dogs[1]= new dog();
    dogs[2]= dog1;
    //Accessing object variables
    dogs[0].name= "fred";
    dogs[1].name= "marge";
    System.out.println("last dog's name is");
    System.out.println(dogs[2].name);
    //looping through array
    int x=0;
     while(x < (dogs.length));
     {
        dogs[x].bark();
        x=x+1;

     }
}     

}

大家好...... 我是java的新手,也是java编程的新手.... 在abouve代码....根据“头第一java”教科书... 输出应该是

"null says warf!
last dog's name is bart
fred says warf!
marge says warf!"

但是在上面的代码中,因为我在eclipse ide中编码它......前两行输出m但不是最后两行......似乎while循环没有被执行.... 。 任何代码都可以告诉我代码输出的问题是什么?

1 个答案:

答案 0 :(得分:4)

while声明末尾有分号

while(x < (dogs.length));  // Remove the semi-colon
  

似乎while循环没有被执行。

事实上,它会无限执行,因为x的值总是相同的,并且由于分号,你没有任何身体的一部分,改变它。以下代码只是一个与while无关的本地范围块。