Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: erweiterte IF - Bedingung

  Alt 12. Apr 2015, 22:06
Wann kommt falsch und bei welchen Eingabewerten?

Ich würde aber fast wetten du hat ein paar Klammern vergessen.
Denn dein Code macht es aktuell so
Delphi-Quellcode:
if (not (edit1.Text = 'Sekretäriat')) and (edit2.Text = 'Faldera123')
  or (not (edit1.Text = 'sekretäriat')) and (edit2.Text = 'Faldera123')
  or (not (edit1.Text = 'Schüler')) and (edit2.Text = 'Klasse123')
  or (not (edit1.Text = 'schüler')) and (edit2.Text = 'Klasse123')
then
  showmessage('Falsch.');
Delphi-Quellcode:
if ((edit1.Text <> 'Sekretäriat') and (edit2.Text = 'Faldera123'))
  or ((edit1.Text <> 'sekretäriat') and (edit2.Text = 'Faldera123'))
  or ((edit1.Text <> 'Schüler') and (edit2.Text = 'Klasse123'))
  or ((edit1.Text <> 'schüler') and (edit2.Text = 'Klasse123'))
then
  showmessage('Falsch.');
Lösungen:

Delphi-Quellcode:
if not ((edit1.Text = 'Sekretäriat') and (edit2.Text = 'Faldera123'))
  or not ((edit1.Text = 'sekretäriat') and (edit2.Text = 'Faldera123'))
  or not ((edit1.Text = 'Schüler') and (edit2.Text = 'Klasse123'))
  or not ((edit1.Text = 'schüler') and (edit2.Text = 'Klasse123'))
then
  showmessage('Falsch.');
Delphi-Quellcode:
if not (edit1.Text = 'Sekretäriat') and not (edit2.Text = 'Faldera123')
  or not (edit1.Text = 'sekretäriat') and not (edit2.Text = 'Faldera123')
  or not (edit1.Text = 'Schüler') and not (edit2.Text = 'Klasse123')
  or not (edit1.Text = 'schüler') and not (edit2.Text = 'Klasse123')
then
  showmessage('Falsch.');
Delphi-Quellcode:
if (edit1.Text <> 'Sekretäriat') and (edit2.Text <> 'Faldera123')
  or (edit1.Text <> 'sekretäriat') and (edit2.Text <> 'Faldera123')
  or (edit1.Text <> 'Schüler') and (edit2.Text <> 'Klasse123')
  or (edit1.Text <> 'schüler') and (edit2.Text <> 'Klasse123')
then
  showmessage('Falsch.');
Diese drei Lösungen machen alle das Gleiche, wenn man die boolsche Algebra gelernt hat.

Siehe auch if ((edit1.text='Sekretäriat') or (edit1.text='sekretäriat')) and (edit2.text='Faldera123') then
Wie im Mathe: Punktrechnung vor Strichrechnung ... AND vor OR
und NOT so, wie das Minus von negativen Zahlen.

Also solltest du dieses vielleicht besser lernen, z.B. über eines der unzähligen Tutorials.



PS: Delphi-Referenz durchsuchenAnsiSameText


[edit]
ähhh, verwende doch bitte [delphi]...[delphi]

@Helmi: Nach den NOT und um beide AND-Operatoren
$2B or not $2B

Geändert von himitsu (12. Apr 2015 um 22:21 Uhr)
  Mit Zitat antworten Zitat