Einzelnen Beitrag anzeigen

Benutzerbild von programmierer
programmierer

Registriert seit: 27. Jan 2006
Ort: Dresden
18 Beiträge
 
Delphi 2005 Personal
 
#1

bool'sches Verständigungsproblem

  Alt 10. Okt 2007, 21:20
Guten Abend!

Ich sitze gerade an einem Spiel und habe ein Problem, wenn man es so nennen will.
Es funktioniert zwar bis jetzt alles einwandfrei, aber ich verstehe nicht warum ^^

Folgendes:

Delphi-Quellcode:
if (sel <> (117 AND -1) then
  if ( (i AND j) in [0..7] ) then
   [...]
Wenn angenommen (sel = -1) ist, dann ergibt die erste Abfrage true. (sollte false sein)
Wenn i oder j z.B. 10 ist, dann ergibt auch die zweite Abfrage true. (sollte ebenfalls false sein)
Das verstehe ich nicht so ganz, denn wenn ich schreibe

Delphi-Quellcode:
if (sel <> (117 OR -1) then
  if ( (i OR j) in [0..7] ) then
bzw.
Delphi-Quellcode:
if (sel <> 117) AND (sel <> -1) then
  if ( (i in [0..7]) AND (j in [0..7])) then
funktioniert es.

Habe ich da jetzt einen Denkfehler?
Kann mir mal bitte jemand erklären, warum (sel <> (117 AND -1)) nicht das gleiche ist wie (sel <> 117) AND (sel <> -1) ??
Meines Erachtens darf sel in beiden Fällen nicht 117 UND nicht -1 sein, um die gesamte Aussage auf true zu setzen.
Und bei (sel <> (117 OR -1)) muss doch theoretisch nur eine Bedinung erfüllt sein: Also wenn (sel = -1) ist, ist (sel <> 117) immer noch erfüllt und durch das OR wird die Aussage wahr, oder nicht?

So denke ich das jedenfalls, aber anscheinend habe ich da irgendwo einen Denkfehler drin, den ich im Moment nicht finde!

Bitte um Aufklärung
Stanley F.
Wenn alles gut zu gehen scheint, hast Du sicher etwas vergessen.
  Mit Zitat antworten Zitat