2016-11-21 1 views
0

Ich muss ein Programm schreiben mit While-Schleifen nach fragen, welche Vögel der Benutzer gesehen hat und wie viele, diese Fragen wiederholt werden, bis der Benutzer END eingibt und die Schleife nicht mehr erlaubt es zu drucken zwei Nachrichten, von denen einer den häufigsten Vogel mit dem Namen und der Nummer hat. Das Programm funktioniert, aber wenn die letzten zwei Nachrichten ausgedruckt werden, wird anstelle des Namens dieses Vogels das Wort END gedruckt. Ich weiß, dass ich eine Variable brauche, um den gewöhnlichen Vogel zu speichern, aber ich weiß nicht, wie ich das machen soll. Im Folgenden ist der Code aufgeführt.Java while-Schleife, kann nicht verwenden oop

+0

Sie müssen eine weitere Variable hinzufügen und den vom Benutzer gesehenen Vogel in diese Variable speichern. – KPJAVA

Antwort

0

Ja, Sie benötigen eine andere Variable für die Aufzeichnung der häufigsten Vogel. Sie können CommonBird gleichzeitig mit der Aktualisierung mostNumberOfTimes zuweisen und dann in Ihrer Ausgabeanweisung verwenden.

String birdName; 
String commonBird = ""; 
int numberOfTimes; 
int mostNumberOfTimes = 0; 
String quit = "END"; 

Scanner scanner = new Scanner(System.in); 

while (true) { 
    System.out.println("Which bird have you seen?"); 
    birdName = scanner.nextLine(); 

    if (birdName.equals(quit)) { 
     System.out.println("You saw " + mostNumberOfTimes + 
          " " + commonBird + "."); 
     System.out.println("It was the most common bird seen" + 
          " at one time in your garden."); 
     break; 
    } else { 
     System.out.println("How many were in your garden at once?"); 
     numberOfTimes = Integer.parseInt(scanner.nextLine()); 

     if (mostNumberOfTimes < numberOfTimes) { 
      mostNumberOfTimes = numberOfTimes; 
      commonBird = birdName; // added this 
     } 
    } 
} 

Variablennamen sollten gemäß den Java-Style-Guides immer mit einem Kleinbuchstaben beginnen. Nur Klassennamen sollten einen großgeschriebenen Anfangsbuchstaben haben.

+0

danke, es hat funktioniert –