Forum: PC-Programmierung C-Programm for-Schleife


von Thomas E. (bolv-1)


Lesenswert?

Hallo ich habe ein Verständnissproblem bei folgendem C-Code:
.
.
.
for(;;)
.
.
Was haben die ; in der Klammer zu bedeuten? Weiß das jemand?

Besten Dank
Thomas

: Verschoben durch Moderator
von Kai S. (hugstuart)


Lesenswert?

Die Schleife läuft für immer (keine Abbruchbedingung).

von Peter S. (psavr)


Lesenswert?

Ist so definiert als Endlos-Schleife ohne Abbruchbedingung. Ich 
persönlich halt es für syntaktischen Schwachsinn und bevorzuge

while(1)
{
  //Endlosschleife
}

Aber ist letztendlich reine Gschmacksache...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Thomas E. schrieb:
> for(;;)
> .
> .
> Was haben die ; in der Klammer zu bedeuten? Weiß das jemand?
Sie trennen die
(Startzuweisung;Schleifenabbruchbedingung;Schleifenoperation)
( i=0          ; i<9                     ; i++              )

Wenn alle drei Argumente fehlen:
(              ;                         ;                  )
dann fehlt auch die Schleifenabbruchbedingung und die Schleife läuft 
ohne explizites break einfach immer durch.

von Thomas E. (bolv-1)


Lesenswert?

Ok! Das ist geklärt. Danke für eure Antworten.

Thomas

von Julian Lindemeyer (Gast)


Angehängte Dateien:

Lesenswert?

Guten Tag,
ich habe ein Problem bei der Endlosschleife die ich programmiert habe.
Ich soll eine Schleife entwickeln, bei der endlos Zahlen eingegeben 
werden und bei negativen zahlen die Schleife verlassen wird und das 
Programm beendet wird.
Ich hab schon mit for , while versucht und bin bei do-while gelandet. 
eine einfache while(i>0) taugt nichts und if lese break Anweisungen 
bringt die Schoeife auch nicht sich zu beenden.
Muss man mehrere Schleifen programmieren und müssen die verschachtelt 
sein?
ich bitte um Hilfe

von zitter_ned_aso (Gast)


Lesenswert?

weil die Zeilen 5 bis 7 die übergebene Parameterwerte überschreben.

von Rolf M. (rmagnus)


Lesenswert?

Julian Lindemeyer schrieb:
> ich habe ein Problem bei der Endlosschleife die ich programmiert habe.

Bitte das nächste Mal einen neuen Thread starten und nicht eine über 8 
Jahre alte Leiche ausgraben.

Julian Lindemeyer schrieb:
> Ich soll eine Schleife entwickeln, bei der endlos Zahlen eingegeben
> werden und bei negativen zahlen die Schleife verlassen wird und das
> Programm beendet wird.

Dann ist es nicht endlos.

> Ich hab schon mit for , while versucht und bin bei do-while gelandet.
> eine einfache while(i>0) taugt nichts

Warum nicht?

> und if lese break Anweisungen bringt die Schoeife auch nicht sich zu
> beenden.

Auch hier: Warum nicht? Sollte beides gehen.

> Muss man mehrere Schleifen programmieren und müssen die verschachtelt
> sein?

Nein.

: Bearbeitet durch User
von Marco H. (damarco)


Lesenswert?

Die Unterschiede sind recht einfach... do{}while(Bedingung) prüft die 
bedingen am ende. while(Bedingung){} und for(initial 
Anweisung;Bedingung; wenn wahr Anweisung){} vor dem Durchlauf.

Verlassen wird die schleife mit break oder die Bedingung ist nicht 
wahr..

continue springt direkt zur Bedingung, heißt nach continue wird der 
restliche Code in der schleife nicht ausgeführt und zunächst die 
Bedingung geprüft.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.