Verständnisfrage bezüglich der Do-While Schleife

ChrSli5385

Mitglied
Hallo Lieber Javafans, anbei eine Frage zur Do-While Schleife, ich habe folgendes einfach mal ausprobiert: Wobei der Monitor nicht mehr aufhört die Sysausgabe anzuzeigen 😀. Wenn ich die Dekrementierung in den Do Rumpf packe funktioniert alles wie geplant, jedoch wenn ich ihn in den while Rumpf packe nicht mehr, kann mir jemand mit einfachen Worten erklären warum das so ist? Vielen Dank im Voraus!



Java:
public class Uebung30 {

        public static void main(String[] args) {

    

        int dori = 18;

    

    

        do {

        

            System.out.println("attraktiv sein");

            System.out.println("Dori ist nun " + dori +" Jahre alt");

            

        

        }

    

    

        while (dori < 70); {

        

            System.out.println("Dori ist nun nicht mehr attraktiv");

            dori++;

        

        

        }

    

    



    }



}
 
und so funktionierts wie geplant 😀
Java:
public class Uebung30 {

    public static void main(String[] args) {
       
        int dori = 18;
       
       
        do {
           
            System.out.println("attraktiv sein");
            System.out.println("Dori ist nun " + dori +" Jahre alt");
               
            dori++;
        }
       
       
        while (dori < 70); {
           
            System.out.println("Dori ist nun nicht mehr attraktiv");
           
           
        }
       
       

    }

}
 
Es gibt keinen "while"-Rumpf bei der "do..while()"-Schleife.

Die Schleife endet nach dem Semikolon while (dori < 70); // Hier ist Schluss
Der Teil danach ist einfach weiterer Code im normalen Programmfluss:
Java:
public class Uebung30 {

    public static void main(String[] args) {
        int dori = 18;
        do {
            System.out.println("attraktiv sein");
            System.out.println("Dori ist nun " + dori +" Jahre alt");
              
            dori++;
        } while (dori < 70); // Ende

        System.out.println("Dori ist nun nicht mehr attraktiv");
    }
}

In deinem Programm vorher wurde "dori" nie inkrementiert.
 
Oh backe 😀 . Was wieder anders ausschaut wenn man den "Do-Befehl weglässt". (deshalb war ich etwas confused) Vielen lieben Dank für die prompte Antwort temi!
 
Kannst Du einmal es in Worten beschreiben, wann was 'passieren' soll, also wann Dori attraktiv ist und wann nich??
 
haha, Dori sollte ab 70 Jahren nicht mehr attraktiv sein. Wollte nur mal etwas spaßiges schreiben xD. Hab jetzt noch n paar Übungen mehr mit der do while Schleife gemacht und sie nun verstanden 😉 .
 
Java:
String name = "Dori";
int alter = 18;
do { // Kopf
    // Rumpf
    System.out.println("attraktiv sein");
    System.out.println(name + " ist nun " + alter + " Jahre alt");

    alter++;
    // Rumpf
} while (alter < 70); // Kopf

System.out.println(name + " ist nun " + alter + " Jahre alt"
        + " und nicht mehr attrk.");
 
Sinnvoller ist in diesem Fall, eine
Code:
while(){}
Schleife zu verwenden.
Würde Doris Alter z.B. am Anfang auf 71 gesetzt, dann würde sie mit do-while trotzdem einmal als attraktiv bewertet.
Code:
while(){}
prüft die Bedingung VORHER, während
Code:
do{}while()
immer mindestens einmal in den Rumpf springt und die Bedingung erst hinterher prüft.
 

Neue Themen


Zurück
Oben