Einzelnen Beitrag anzeigen

MathiasSimmack
(Gast)

n/a Beiträge
 
#7
  Alt 1. Jan 2004, 16:26
Du wirst das Problem wahrscheinlich nicht finden, wenn du nicht (wie Peter Lustig vorschlug) ein paar Hilfsvariablen benutzt und denen das Ergebnis deiner ANDs und ORs zuweist. Es gehört zwar nicht gerade zu meinen Steckenpferden, aber dieses Monster:
Delphi-Quellcode:
if(((deutsch_k='e') and (englisch_k='a') and (mathematik_k='a')) or
   ((deutsch_k='g') and (englisch_k='a') and (mathematik_k='a')) or
   ((deutsch_k='e') and (englisch_k='b') and (mathematik_k='a')) or
   ((deutsch_k='e') and (englisch_k='a') and (mathematik_k='b'))) then
ließe sich bestimmt etwas kürzen. Musst du aber gar nicht mal. Es würde schon genügen, wenn du deine Bedingungen nicht direkt prüfst, sondern sie einer bspw. einer Bool-Variablen zuweist:
Delphi-Quellcode:
GuterJunge := (((deutsch_k='e') and (englisch_k='a') and (mathematik_k='a')) or
   ((deutsch_k='g') and (englisch_k='a') and (mathematik_k='a')) or
   ((deutsch_k='e') and (englisch_k='b') and (mathematik_k='a')) or
   ((deutsch_k='e') and (englisch_k='a') and (mathematik_k='b')));
dann könnte deine if-Bedingung danach wie folgt aussehen:
Delphi-Quellcode:
if GuterJunge then
begin
  // und hier geht´s dann mit anderen Bedingungen
  // bzw. Hilfsvariablen weiter
end;
Dadurch wird´s übersichtlicher, du erkennst die Verschachtelungen der begin/end-Blöcke besser, und du dürftest das eigentliche Problem damit wahrscheinlich von selbst aufspüren.
  Mit Zitat antworten Zitat