for () Frage
-
Hallo.
Wieso bricht er hier nicht ab?
bool gefunden = false; for (int x=0;(x<100)||(gefunden);x++) { if (x==5) { gefunden = true; puts("ende"); } }
Es ist sogar eine Endlosschleife dadurch.
-
testletest schrieb:
for (int x=0;(x<100)||(gefunden);x++)
Die Bedingung ist falsch (laufe solange x<100 oder gefunden).
Probiers mal hiermit:for (int x=0;(x<100)&&(!gefunden);++x)
Wenns gefunden ist, solls ja nicht weitergehen (laufe solange x<100 und nicht gefunden)
-
Weil die Bedingung falsch ist. So funktionierts:
for(int x=0;(x<100)&&(!gefunden);x++)
// Edit: Zu spät
-
Du willst wohl eher:
for (int x=0;(x<100) and (not gefunden);x++)
-
Oh~~
Jo mit euren Vorschlägen klapptsNur warum daraus ne Endlosschleife wurde ist mir nicht ganz klar, da x<100 ja eigentlich erreicht werden müsste.
Danke!
-
testletest schrieb:
Oh~~
Jo mit euren Vorschlägen klapptsNur warum daraus ne Endlosschleife wurde ist mir nicht ganz klar, da x<100 ja eigentlich erreicht werden müsste.
Danke!
Die Abbruchbedingung ist für x < 5 wahr, da x < 100. Ab 5 ist jedoch der zweite Teil der or Bedingung immer wahr. Damit auch die gesamte Bedingung.
-
Ups. Stimmt! OK, danke für die schnelle Aufklärung