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循环没有被执行.... 。 任何代码都可以告诉我代码输出的问题是什么?
答案 0 :(得分:4)
while
声明末尾有分号:
while(x < (dogs.length)); // Remove the semi-colon
似乎while循环没有被执行。
事实上,它会无限执行,因为x
的值总是相同的,并且由于分号,你没有任何身体的一部分,改变它。以下代码只是一个与while
无关的本地范围块。