Do while
-
Hi warum ist das eine Endlosschleife, wenn die "i" Bedingung sich doch erfüllt?
#include <iostream> using namespace std; int main () { bool go = false; int i = 0; do { i++; cout << i << " fk" << endl; } while (i <=100 || !go); }
Und zweitens komm ich leider nicht drauf wie eine Bedingung aussehen muss, dass eine do while Schleife sich wiederholt, bis eine Eingabe zwischen 1 und 3 gemacht wurde? Irgendwie Blick ich da was nicht
-
@ycbm welchen wert hat
go
denn?
-
Ok den ersten verstehe ich. Dachte irgendwie nur eine Bedingung muss erfüllt sein.
-
Dachte irgendwie nur eine Bedingung muss erfüllt sein.
i muss kleiner gleich 100 sein
oder
(nicht go) muss wahr sein.in den ersten 101 Durchläufen sind beide Bedingungen erfüllt.
-
Ok hab alles kapiert. Crazy so lange drüber nachgedacht und nach dem fragen fällts sofort ein, danke
-
bis eine Eingabe zwischen 1 und 3 gemacht wurde?
Eingabe muss größer gleich 1 und Eingabe muss kleiner gleich 3 sein.
Das kann man fast direkt hin schreiben.
-
@DirkB das hatte ich auch so aber das stimmt leider nicht bis ich die unds in orders geändert habe
while (schwierigkeit < 1 || schwierigkeit > 3);
-
bis ich die unds in orders geändert habe
Du hast noch die Bedingungen umgedreht.
!(1 <= Eingabe && Eingabe <= 3)
Beachte das ! vor der Bedingung
Ich hatte den Schleifenabbruch vergessen.
-
Warum ist das keine Endlosschleife?
#include <iostream> using namespace std; int main () { bool go = false; int i = 0; do { i++; cout << i << "fk" << endl; } while (i <=100 && go); }
"Wiederhole die Schleife, bis i kleiner als 100 ist und Go=true ist"
Go wird nie true aber die Schleife läuft nur ein Mal..
Sorry für die Anfängerfragen.
-
Hab's auch wieder. OK vergesst es ^^. Sorry nochmal