Autor Thema: C Schleifen abbruch  (Gelesen 14747 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline matashen

  • Benutzer
  • Beiträge: 1.779
C Schleifen abbruch
« am: Do 28.08.2008, 23:08:05 »
Hi zusammen,

nachdem ich nicht der C-Checker bin bitte ich um überprüfung folgender

do ... while-schleife

while (((wert[wer]<wieviel) || (key!=BUTTON_OPTION2)) || ((manythings!=0) && (manyothers!=0))); 

Ich formuliers einfach mal so...
Bei welchen Bedingungen bricht meine Schleife ab?

Gruß Matthias
Have you played Atari today ?!

guest522

  • Gast
Re: C Schleifen abbruch
« Antwort #1 am: Fr 29.08.2008, 12:02:43 »
bricht ab wenn:

manythings==0 oder mayothers==0
AND
key == BUTTON_OPTION2
AND wert[wer] >= wieviel

D.h. solange eine der 3 || Bedingungen erfüllt ist, läuft die Schleife weiter.

Kein sehr schöner Code........ ;)

Das kann man gut mit Boolscher Logik analysieren und dabei die De Morganschen Gesetze verwenden:

De Morgan:
nicht(a undb) = nicht a oder nicht b
nicht(a oder b) = nicht a und nicht b

Schreib Deinen Term auf, negiere ihn komplett und löse mit De Morgan auf.

Offline matashen

  • Benutzer
  • Beiträge: 1.779
Re: C Schleifen abbruch
« Antwort #2 am: Fr 29.08.2008, 14:47:35 »
Uff DeMorgen hab ich mal vor 15 Jahren gemacht.

Ich hab den Whiles nur immer das Problem das ich diese bei Pascal (fast) nie benutze und die repeat-schleifen wesentlich klarere Abbruchstrukturen haben.

Aber danke das klärt einiges.

Gruß Matthias
Have you played Atari today ?!

Offline simonsunnyboy

  • Moderator
  • *****
  • Beiträge: 1.807
  • Rock'n'Roll is the thing - Jerry Lee is the king!
Re: C Schleifen abbruch
« Antwort #3 am: Fr 29.08.2008, 23:07:34 »
while und repeat sind gleichwertig, ind em was sie ausdrücken können.

Und do...whiel gibts auch, wenn du lieber mindestens einen Schleifendurchlauf haben willst. Im Unterschied zum Repeat musst du nur die Bedingung negieren...
Paradize - ST Offline Tournament
Stay cool, stay Atari!
1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

Offline matashen

  • Benutzer
  • Beiträge: 1.779
Re: C Schleifen abbruch
« Antwort #4 am: Fr 29.08.2008, 23:40:55 »
Zitat
Im Unterschied zum Repeat musst du nur die Bedingung negieren...

genau das war mir Anfangs nicht ganz klar, deswegen meine Frage. Nach der Ausführung von Idek hab ichs komplett kapiert.
Sollte halt doch mal ein C-Buch lesen. Aber jetzt bin ich mit meinem Game fast fertig und rutsch langsam in Assembler rein - wird sich dann vermutlich nicht mehr rentieren sich noch n C-Buch zu kaufen bei so guten Leuten hier.  ;D

Gruß Matthias
Have you played Atari today ?!