AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

if not I = 0 then...

Ein Thema von MatthiasR · begonnen am 29. Nov 2011 · letzter Beitrag vom 6. Dez 2011
 
MatthiasR

Registriert seit: 21. Apr 2005
193 Beiträge
 
#1

if not I = 0 then...

  Alt 29. Nov 2011, 11:44
Delphi-Version: 7
Ich habe gerade eine seltsame Entdeckung gemacht. Und verhält sich Delphi bei der Auswertung eines bestimmten boole'schen Ausdrucks nicht so, wie ich es erwarten würde. Konkret handelt es sich um folgende Abfrage:
Delphi-Quellcode:
procedure TForm1.Btn1Click(Sender: TObject);
var
  I: Integer;
begin
  I := 1234;

  if not I = 0 then
    ShowMessage('Test');
end;
Normalerweise würde ich eine solche Abfrage so formulieren:
Delphi-Quellcode:
procedure TForm1.Btn1Click(Sender: TObject);
var
  I: Integer;
begin
  I := 1234;

  if I <> 0 then
    ShowMessage('Test');
end;
Oder alternativ eben mit Klammer:
Delphi-Quellcode:
procedure TForm1.Btn1Click(Sender: TObject);
var
  I: Integer;
begin
  I := 1234;

  if not (I = 0) then
    ShowMessage('Test');
end;
Ich dachte allerdings bisher, auch die erste Variante würde zum Ziel führen, da sich Delphi auch nicht darüber beschwert, dass "I" bspw. selbst kein boole'scher Ausdruck ist und "not I" damit ebenfalls nicht. In welcher Reihenfolge wertet Delphi den ersten Ausdruck denn dann aus, wenn es ihn insgesamt als korrekten boole'schen Ausdruck wertet? Fakt ist jedenfalls, dass der if-Zweig nur in den beiden letztgenannten Ausdrücken durchlaufen wird.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz