2013-07-21 3 views
0
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 код .... в соответствии с «головы первый ява «учебник ... вывод должен быть

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

, но в приведенном выше коде, как я закодировал в Eclipse IDE ..... первые две строки вывода получаю, но не два последних .. .. Кажется, что цикл while не выполняется. может anybode сказать мне, в чем проблема с кодом со ссылкой на выход ???

ответ

4

У вас есть запятой в конце while заявления:

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

, кажется, что цикл, пока не получает казнены.

На самом деле, он будет выполняться бесконечно, так как значение x всегда то же самое, и вы не имеете тело некоторое время из-за этого запятой, чтобы изменить его. Следующий код является только локальным облачным блоком, не связанным с while.

Смежные вопросы