do..while Schleife

javac32

Mitglied
Guten Abend zusammen

Verstehe leider nicht wie man dies bewerkstelligen soll? Teilaufgabe b

Wie würdet ihr das lösen?Aufgabe.jpg

In der Beilage mein "Lösungsversuch".

Danke für die Hilfe.

Gruss
 

Anhänge

  • Lösungsvariante.jpg
    Lösungsvariante.jpg
    22,9 KB · Aufrufe: 14

MarvinsDepression

Bekanntes Mitglied
z.B.:
Java:
// Codefragment B
int a= 5;
do {
} while (a > 10);
oder (wenn das zu trivial ist,
Java:
// Codefragment B
int a= 5;
String s = "";
do {
    System.out.println(s);
    s = "Hallo"
} while (a > 10);
oder,
Java:
// Codefragment B
int a= 5;
boolean isFirstLoop = true;
do {
    if (!isFirstLoop) {
        System.out.println("Hallo");
    }
    isFirstLoop = false;
} while (a > 10);
 
Y

yfons123

Gast
@MarvinsDepression das ist müll, es sind alle 3 Vorschläge falsch oder miserabel programmiert.. es ist zum kotzen, dass du dich nicht schämst so einen Mist abzuliefern... es ist so peinlich

das problem bei deinem Lösungsversuch in der ersten do while ist dass du sagst
Java:
1. geh in die do while rein
2. Println leer
3. geh raus aus while ( wegen break; )
=> nicht so gewollt nehme ich mal an

das ist der unterschied ist bei do while

"schieß zuerst , stelle fragen später"
dh du läufst zuerst einmal durch und dann wird geschaut ob die abfrage noch passt d.h die Aufgabe b) läuft einmal öfter durch als a)

Außerdem verstehe ich die Aufgabe b) nicht wirklich... die geben exakt das gleiche aus, sie laufen unendlich lange da die variable a nie erhöht wird
Keine Anpassung nötig.. geben das gleiche aus
also das ist eine Verarschungs aufgabe...solche aufgaben sind einfach nur unnötig
 
Zuletzt bearbeitet von einem Moderator:

KonradN

Super-Moderator
Mitarbeiter
@MarvinsDepression das ist müll, es sind alle 3 Vorschläge falsch oder miserabel programmiert.. es ist zum kotzen, dass du dich nicht schämst so einen Mist abzuliefern... es ist so peinlich
Ich denke, dass dies unnötig war.

Was du übersehen hast: a ist 5 und die While Schleife läuft, so lange a größer 10 ist.
==> Die While Schleife läuft also nie!

Was man also in der do while Schleife braucht ist einfach eine weitere Prüfung.

Generell ist es so, dass jede Schleife in jede andere umgeformt werden kann. Bei der while -> do while Schleife ist dies einfach:
Java:
while (<Bedingung>) {
    // Do Something
}

ist die 1:1 Umwandlung (was die Funktionalität angeht) Z.B.:
Java:
do {
    if (<Bedingung>) {
        // Do Something
    }
} while (<Bedingung>)

Oder man macht es mit einem break:
Java:
do {
    if (!<Bedingung>) break;

    // Do Something
} while (<Bedingung>)
 

Hobbes

Aktives Mitglied
Außerdem verstehe ich die Aufgabe b) nicht wirklich... die geben exakt das gleiche aus, sie laufen unendlich lange da die variable a nie erhöht wird
Keine Anpassung nötig.. geben das gleiche aus
also das ist eine Verarschungs aufgabe...solche aufgaben sind einfach nur unnötig

das ist müll. es ist zum kotzen, dass du dich nicht schämst so einen Mist abzuliefern... es ist so peinlich

;-)
 

DefconDev

Bekanntes Mitglied
Ich denke, dass dies unnötig war.

Was du übersehen hast: a ist 5 und die While Schleife läuft, so lange a größer 10 ist.
==> Die While Schleife läuft also nie!

Was man also in der do while Schleife braucht ist einfach eine weitere Prüfung.

Generell ist es so, dass jede Schleife in jede andere umgeformt werden kann. Bei der while -> do while Schleife ist dies einfach:
Java:
while (<Bedingung>) {
    // Do Something
}

ist die 1:1 Umwandlung (was die Funktionalität angeht) Z.B.:
Java:
do {
    if (<Bedingung>) {
        // Do Something
    }
} while (<Bedingung>)

Oder man macht es mit einem break:
Java:
do {
    if (!<Bedingung>) break;

    // Do Something
} while (<Bedingung>)
Ich verstehe trotzdem nicht worauf die Übung b aus ist. Kein Entwickler käme jemals auf die Idee in einer do while Schleife ein If hinzuzufügen wenn man eigentlich ein while do benutzen könnte. Hinzu kommt noch, dass die Aufgabe dadurch einen suggeriert, weitere Verschachtelung ist eine geile Sache.

Finde die 1. Lösung von @MarvinsDepression am lustigsten, würde da gerne das Gesicht des Prüfers sehen. Oder wenn es eine Hausaufgabe sein soll, ihm eine Ansammlung von etlichen Klassen mitgeben, mit etlichen Methoden die aufgerufen werden bis am Ende ein simples Break steht.
 
a. Fragment A gibt nichts aus, Fragment B gibt genau einmal "Hallo" aus.

b.

Java:
int a = 5;
do {
    if (a > 10) {
        sout "Hallo";
    }
} while (a > 10);
 

berndoa

Top Contributor
Der Sin der Aufgabe sollte doch eigentlich offensichtlich sein:
Es wird geguckt ob Derjenige weiß worin sich while und do while Shcleife unterscheiden, gerade auch bzgl. der Reiehnfolge, in der der Shcleifeninhalt ausgeführt wird und wann die Shcleifenbedingung geprüft wird.

Gerade wenn wie hier die Shcleifenbedingungen nie erfüllt wird, macht sowas den Unterschied zwischen einmal und keinmal.

MarvinsDepression hat völlig Recht mit seinem "Müll".

Man kanns auch einfach mit break; und auf tausend andere Arten beenden, aber das sit Geschmackssache.

Vermutlich ist es in der Aufgabe eh ein Schreibfehler und da sollte int a=50; stehen.
und der Prüfer will sehen dass man hinten aus der 50 ein 49 macht damit im Endergebnis beide Schleifen den Text gleich oft ausgeben...​

 

berndoa

Top Contributor
Das glaube ich nicht, denn dann hätte man Endlosschleifen, da a ja nicht verändert wird.
Stimmt auch wieder.
Obwohl es schon unüblich ist, dass die "Lösung" der AUfgab einfach erfordert den Code in der Shcleife zu löschen oder irgendwie dessen Ausführung shclicht zu verhindern.
Nicht gerade eine Standardaufgabe.

Aber vielleicht auch gerade desahlb extra aos Fangfrage gemacht weil man vielleicht shcon so im Hinterkopf hat "ja, bei do while mit index-1 beginnen im Vergleich zur whileshcleife" was hier nicht helfen würde
 

Neumi5694

Top Contributor
Nur noch meine 5Cent. Da wir wissen, dass die Schleife in a) nie durchlaufen wird, können wir uns jede die Prüfung sparen und einfach sofort ein break an erster Stelle einbauen.
Java:
int a= 5;
do {
    break;
    System.out.println("Hallo");
} while (a > 10);
Falls die Schleife aber überhaupt nicht geändert werden darf (und ich gehe davon aus, dass der Prof das gemeint hat), auch nicht ihr Inhalt, dann geht auch das:
Code:
int a= 5;
if (a > 10) {
    do {
        System.out.println("Hallo");
    } while (a > 10);
}
Das würde genau dem Verhalten der while-Schleife entsprechen. Prüfung zuerst, dann Ausführung, dann gegebenenfalls nächste Prüfung.

edit: Natürlich reicht in diesem speziellen Fall auch ein "if (false)", aber so funktioniert's auch mit verschiedenen Startwerten für a.
 

MarvinsDepression

Bekanntes Mitglied
Ich habe lange überlegt (oder auch nicht), ob ich mich zu diesem Thema nochmals äußern soll und habe beschlossen, es nicht zu tun...

... woran ich mich jetzt aber nicht halte. 😄

Die ganze Diskussion ist doch Quatsch. Die einzige Daseinsberechtigung der "do-while"-Schleife ist doch, mindestens einen Loop auszuführen (in der Regel, weil dann erst die Abbruchkriterien bekannt sind).
Die Aufgabe b) in #1 verlangt nun, einer solchen Schleife diesen einen loop zu unterbinden. Ist doch Murks (wurde ja auch weiter oben so kommentiert). Da lernt man auch nichts dabei...

Trotzdem gibt es jetzt bereits genügend Code-Beispiele und wir können zur Abstimmung übergehen.
Ich finde das letzte Besispiel am besten, auch wenn hier die Abbruchbedingung redundant ist. 😝
Code:
Code:
int a= 5;
if (a > 10) {
    do {
        System.out.println("Hallo");
    } while (a > 10);
}
 

KonradN

Super-Moderator
Mitarbeiter
Also man muss die Lösungen nicht einmal abstimmen, denn in der Praxis ist es - wie Du richtig gesagt hast - einfach Unsinn.

Die letzte Variante hat den Vorteil, dass der Check nur einmal statt findet. Aber wir haben eine höhere Einrück-Ebene bei der Schleife. Wenn man z.B. die Lösung mit dem Check in der while Schleife hat, dann wird der Check bei jedem Durchlauf doppelt gemacht - was auch unschön ist.

==> Daher meine ich: Egal, was man macht, es schreit schlicht nach einem Refactoring :)
 

Neumi5694

Top Contributor
Die Aufgabe selbst ist Unsinn, es sei denn, es ging darum, den Unterschied zwischen den beiden Schleifenarten zu verstehen,

@MarvinDepression Das mit der Redundanz ist richtig, ich hab beides drin behalten, damit es auch für ein a > 10 funktioniert, damit das Verhalten auch wirklich garantiert gleich ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M While-Schleife mit Wartezeit Java Basics - Anfänger-Themen 15
Ranger229 Endless loop in while Schleife Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
Ostkreuz While Schleife neustarten Java Basics - Anfänger-Themen 20
S Erste Schritte do-while Schleife Münzwurf Java Basics - Anfänger-Themen 1
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
P Best Practice While loop schleife Java Basics - Anfänger-Themen 5
A Erste Schritte Aufgabe mit while Schleife Java Basics - Anfänger-Themen 11
R do while Schleife Verständnisfrage Java Basics - Anfänger-Themen 2
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
A Return in While Schleife Java Basics - Anfänger-Themen 6
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
B Zuweisungen und Methodenaufrufe in Bedingung der while Schleife? Java Basics - Anfänger-Themen 2
JavaBeginner22 Würfeln bis 6 while Schleife Java Basics - Anfänger-Themen 13
L while Schleife mit 2 Bedingung endet nicht Java Basics - Anfänger-Themen 3
D Array mit while-schleife Java Basics - Anfänger-Themen 12
B do while Schleife Java Basics - Anfänger-Themen 3
SergioCK Do while Schleife wiederholen Java Basics - Anfänger-Themen 14
Informatikf Methoden While Schleife Java Basics - Anfänger-Themen 3
M While Schleife? Java Basics - Anfänger-Themen 4
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
M Wie kann ich Werte die in einer While Schleife sind weiter genutzt werden? Java Basics - Anfänger-Themen 7
H Kann eine while-Schleife ein Programm blockieren? Java Basics - Anfänger-Themen 8
O Methode in while-Schleife aufrufen geht nur beim ersten Mal Java Basics - Anfänger-Themen 2
A Wie schaffe ich das eine while Schleife addiert danach subtrahirt? Java Basics - Anfänger-Themen 1
J for /while Schleife Java Basics - Anfänger-Themen 5
A While Schleife - buubelsort methode Java Basics - Anfänger-Themen 2
J Wie kann ich hier eine While schleife einbauen? Java Basics - Anfänger-Themen 3
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
S Do-While-Schleife Java Basics - Anfänger-Themen 2
S While Schleife Java Basics - Anfänger-Themen 4
S Do-While Schleife Java Basics - Anfänger-Themen 6
L String in Do-While-Schleife Abbruchkriterium Java Basics - Anfänger-Themen 1
CptK Methoden While-Schleife so lange ausführen, wie Methode etwas zurückgibt Java Basics - Anfänger-Themen 2
B Verschachtelung von For-Schleife in While Schleife Java Basics - Anfänger-Themen 14
G while schleife Java Basics - Anfänger-Themen 11
G while schleife mit array Java Basics - Anfänger-Themen 12
L Scanner schließen in While-Schleife? Java Basics - Anfänger-Themen 2
G While schleife Java Basics - Anfänger-Themen 2
mor16Euro Erste Schritte Wie nennt man eine While oder For schleife die nie Ausgeführt wird Java Basics - Anfänger-Themen 5
C Verständnisfrage bezüglich der Do-While Schleife Java Basics - Anfänger-Themen 9
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
N while Schleife wird nicht beendet, obwohl Sie hätte breaken sollen Java Basics - Anfänger-Themen 4
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
D While Schleife bei Bedarf durch Eingabe stoppen Java Basics - Anfänger-Themen 15
A Erste Schritte while-Schleife Java Basics - Anfänger-Themen 38
X While Do schleife funtioniert nicht Java Basics - Anfänger-Themen 5
J 2 "while"-Anweisungen in einer do-Schleife? Java Basics - Anfänger-Themen 4
W while Schleife und Bedingung Java Basics - Anfänger-Themen 11
T While Schleife funktioniert nicht Java Basics - Anfänger-Themen 14
J Input/Output Strings aneinander reihen mit while schleife Java Basics - Anfänger-Themen 25
S Try-Catch in Verwendung einer while Schleife Java Basics - Anfänger-Themen 2
P a cannot be resolved bei einer do while Schleife Java Basics - Anfänger-Themen 1
J While Schleife Java Basics - Anfänger-Themen 19
Z Return in While-Schleife Java Basics - Anfänger-Themen 7
N Methode mit While-Schleife und If-Bedingung und Array-Initialisierung Java Basics - Anfänger-Themen 4
V Erste Schritte Habe Fragen zu der For und While Schleife als auch Inkrement und Dekrement Java Basics - Anfänger-Themen 4
helldunkel While Schleife trotz false Java Basics - Anfänger-Themen 4
E Threads Thread in While-Schleife nur einmal starten Java Basics - Anfänger-Themen 2
R While-Schleife macht nicht was sie soll Java Basics - Anfänger-Themen 24
b1ck while-Schleife Java Basics - Anfänger-Themen 10
b1ck Integer initialisieren bei do-while-Schleife Java Basics - Anfänger-Themen 11
kilopack15 DoWhile-Schleife als While-Schleife darstellen Java Basics - Anfänger-Themen 9
A While-Schleife funktioniert nicht! Java Basics - Anfänger-Themen 33
A Verständnisproblem Ausgabe Do-While-Schleife Java Basics - Anfänger-Themen 3
E Alphabet mit einer while Schleife ausgeben Java Basics - Anfänger-Themen 3
T while schleife starten , beeneden und wieder Starten Java Basics - Anfänger-Themen 8
W Verständnis Probleme bei der while-Schleife und continue Java Basics - Anfänger-Themen 21
B Passwort prüfen bis eindeutig - while Schleife? Java Basics - Anfänger-Themen 11
$ Multiplikations-Rechner mit while Schleife Java Basics - Anfänger-Themen 8
T Variablen Var aus While-Schleife abfragen -.-' Java Basics - Anfänger-Themen 9
snipesss Schlüsselworte While Schleife Java Basics - Anfänger-Themen 3
snipesss While Schleife Java Basics - Anfänger-Themen 6
A Do-While Schleife; int vergleich Java Basics - Anfänger-Themen 2
K For Schleife in While Schleife umwandeln Java Basics - Anfänger-Themen 5
Ste3et_C0st Dynamische While/For Schleife Java Basics - Anfänger-Themen 7
L do-while-Schleife läuft doppelt, try catch fehler Java Basics - Anfänger-Themen 12
A While und For Schleife Java Basics - Anfänger-Themen 2
C Erste Schritte Frage zur do while- und while-Schleife Java Basics - Anfänger-Themen 4
C Do-While Schleife (Fehler bei der Klammerung?) Java Basics - Anfänger-Themen 8
C while-Schleife wird zuoft durchgeführt Java Basics - Anfänger-Themen 2
F Problem do while Schleife und Scanner Java Basics - Anfänger-Themen 2
F Programm bricht While Schleife nicht ab Java Basics - Anfänger-Themen 4
S Verständnis - Frage mehrere SQL Statements in While Schleife Java Basics - Anfänger-Themen 0
C Erste Schritte Warum ist die While Schleife so schnell? Java Basics - Anfänger-Themen 5
A was wird in der while schleife gemacht Java Basics - Anfänger-Themen 3
A Kleines Abbruch-Problem mit Do-While-Schleife Java Basics - Anfänger-Themen 4
Z Logikfehler do-while Schleife Java Basics - Anfänger-Themen 4
E While-Schleife Java Basics - Anfänger-Themen 6
D Textfield im Game ,Problem: while-Schleife Java Basics - Anfänger-Themen 1
A Probleme mit While Schleife Java Basics - Anfänger-Themen 10
M Fibonacci-Folge mit while-Schleife Java Basics - Anfänger-Themen 4
B Summe aller Zahlen von 1 bis zu dieser Zahl (ohne while oder for schleife) Java Basics - Anfänger-Themen 4
LangUndBreit Erste Schritte 100% cpu auslastung (evtl unendliche while schleife?) Java Basics - Anfänger-Themen 1
T Wie vergleiche ich die Jahre aus der while Schleife die in ( public class) fuer cbx geschrieben sind Java Basics - Anfänger-Themen 5
T while Schleife Java Basics - Anfänger-Themen 22
N While Schleife Erklärung Bitte Java Basics - Anfänger-Themen 3
F Problem mit der While schleife und dem Scanner Java Basics - Anfänger-Themen 2
A do while Schleife wird 2 mal durchlaufen Java Basics - Anfänger-Themen 3
Z Compiler-Fehler do while schleife Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben