Forum: PC-Programmierung c, Do-While Schlaufe mit Mehrfachbedingung


von Ma B. (drumstick)


Lesenswert?

Hallo!

Ich schreibe ein c Programm mit uVision von Keil. Meine Frage:
1
while((crash <= 1) && (movingsense == 1) && (l1 <= chuteway1));

Wird dies funktionieren? Bei meinem Programm wird die Schlaufe immer vor 
der Erfüllung der Bedingungen beendet!

Danke und Gruss!

M.B.

von Karl H. (kbuchegg)


Lesenswert?

M. B. schrieb:


>
1
> while((crash <= 1) && (movingsense == 1) && (l1 <= chuteway1));
2
>
>
> Wird dies funktionieren?

Wenn die Variablen sauber volatile sind, und die Bedingung an sich 
stimmt, dann funktioniert das auch.

> Bei meinem Programm wird die Schlaufe immer vor
> der Erfüllung der Bedingungen beendet!

Dann wird wohl auch die Bedingung nicht zutreffen.
In deinem Fall müssen alle 3 Einzelbedingungen zutreffen, damit die 
Schleife weiterläuft. Ist auch nur eine davon nicht erfüllt, endet die 
Schleife.

Die Erfahrung zeigt, dass wir Menschen im täglichen Leben die Begriffe 
UND und ODER wie wild durcheinandermischen und trotzdem verstehen uns 
die Anderen. Bei einem Computerprogramm muss man da aber vorsichtig 
sein. Nicht jedes umgangssprachliche UND findet sich auch im Programm 
als && wieder.
-> Also nochmal über die Bedingungen und deren Verknüpfung nachdenken:

die while Schleife soll laufen, solange die 3 Einzelbedingungen allesamt 
erfüllt sind. Die Einzelbedingungen sind .....

von Ma B. (drumstick)


Lesenswert?

Danke für die Antwort! Nein, nein, habe kein Durcheinander mit UND und / 
oder ODER. Zumindest nicht mehr :-) . Ich wusste nur nicht, ob ich mehr 
als zwei Bedingungen aufstellen darf.

Nochmals Danke!

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.