Wie vervollständige ich die Methode "countdown" mit einer while Schleife & "main" mit einer for Schleife?

2 Antworten

Du hast eine Endlosschleife in der Methode countdown geschrieben:

while(c > 0){
    System.out.println(c);
    c = 1;
}

Die Bedingung dort ist immer true. Denn in jedem Durchlauf setzt du den Wert von c auf eins. Da eins größer als null ist, kann die Schleife nie beendet werden. Richtig wäre es, wenn du den Wert von c um 1 verringerst, anstatt den Wert von c immer auf 1 zu setzen. Hier gibt es mehrere Möglichkeiten:

// Möglichkeit 1:
c = c - 1;
// Möglichkeit 2:
c -= 1;
// Möglichkeit 3:
c--; // oder auch --c; aber das verwendet man besser nicht in diesem Kontext

Durch das Inkrementieren von c ändert sich der Wert und die Bedingung

c > 0

kann irgendwann auch zu false werden. Dies ermöglicht ein Ende der Schleife, sodass auch der Text "Start!" ausgegeben werden kann.

Woher ich das weiß:Studium / Ausbildung

Suunshiiiine 
Fragesteller
 27.05.2021, 23:06

Danke dir erstmal!

Nachdem man das dann korrigiert, ist das Programm dann auch fertig oder muss ich noch was hinzufügen?

0
RBM1992  27.05.2021, 23:11
@Suunshiiiine

Mir fällt gerade auf, dass die for-Schleife nicht funktionieren kann. Als drittes muss entweder die Zählervariable vergrößert oder verkleinert werden (in den meisten Fällen um 1).

Du rufst hier jedoch eine Methode vom Typ void auf. Eigentlich sollte der Code so nicht Compilieren (habe es aber ehrlich gesagt nie versucht, so was umzusetzen).

Ich denke, das Sinnvollste wäre, in der main-Methode eine while-Schleife zu nutzen, um die Nutzereingaben abzufragen und diese in ein Array vom Typ int zu packen. Anschließend kann man mit einer for-Schleife alle Elemente des Arrays abarbeiten.

0
RBM1992  27.05.2021, 23:16
@RBM1992

Die Abbruchbedingung für die while-Schleife wäre natürlich eine Eingabe kleiner als null.

0

Blicke da zwar nicht ganz so durch aber ich verbesser erstmal die Countdown methode

 public static void countdown(int c)
 {
    while (c>0)
    {
     System.out.println(c);
     c--; 
    }
    System.out.println("start"); 
}

Den Sinn der anderen verstehe ich nicht

Woher ich das weiß:Studium / Ausbildung – Informatik Studium