Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Unterschied zwischen "not" und "false"? (https://www.delphipraxis.net/153659-unterschied-zwischen-not-und-false.html)

romber 11. Aug 2010 15:08

Delphi-Version: 2005

Unterschied zwischen "not" und "false"?
 
Hallo!

Gibt es irgenwelche Unterschied zwischen

Delphi-Quellcode:
if irgendwas = false then
und

Delphi-Quellcode:
if not irgendwas then
Sind die beide Methoden gleich schnell?

DeddyH 11. Aug 2010 15:10

AW: Unterschied zwischen "not" und "false"?
 
Ob sie gleich schnell sind, kann ich Dir nicht sagen. Allerdings sollte man nie auf true oder false prüfen, da dies zumindest bei true in die Hose gehen kann.

omata 11. Aug 2010 15:12

AW: Unterschied zwischen "not" und "false"?
 
Beides ist gleich.

Nur das...
Zitat:

Zitat von romber (Beitrag 1041240)
Delphi-Quellcode:
if irgendwas = false then

zum ko**en ist! Und nicht wirklich guter Stil.

Sir Rufo 11. Aug 2010 15:13

AW: Unterschied zwischen "not" und "false"?
 
Ja

Tut man nicht
Delphi-Quellcode:
if irgendwas = false then
Das ist korrekt
Delphi-Quellcode:
if not irgendwas then
Den erzeugten Code kannst du über den Debugger rausfinden.
Wenn der gleich sein sollte (Compilermagic) dann ist es gleich schnell

Ansonsten einfach mal die Zeit messen

vlees91 11. Aug 2010 15:13

AW: Unterschied zwischen "not" und "false"?
 
Zitat:

Zitat von romber (Beitrag 1041240)
Delphi-Quellcode:
if irgendwas = false then
und

Delphi-Quellcode:
if not irgendwas then

der (Delphi 2006) compiler compiliert beides zu
Code:
test bl, bl
jnz xxx
Es ist also EXAKT gleich.

Wenn man allerdings
Delphi-Quellcode:
if (irgendwas = true) then
macht, wird dies
Code:
cmp bl,1
jz xxx
und
Delphi-Quellcode:
if (irgendwas) then
wird
Code:
test bl,bl
jz xxx
Also wie gesagt ist es egal was man bei false macht aber bei true sollte man aufpassen.

mkinzler 11. Aug 2010 15:17

AW: Unterschied zwischen "not" und "false"?
 
Das 1. bedeutet ja das Vergleich irgendwas = false true sein muss:
Code:
  irgendwas: false
     false = false -> true
  irgendwas: true
    false = true -> false
Das 2. das die Variable negiert wird
Code:
  irgendwas: false
    false -> true
  irgendwas: true
    true -> false
Das Problem ist das true als <> 0 deklariert ist, also True nicht unbedingt True ist.

himitsu 11. Aug 2010 15:20

AW: Unterschied zwischen "not" und "false"?
 
Delphi-Quellcode:
var b: Boolean;
begin
  Memo1.Lines.Add('');
  Memo1.Lines.Add('b := false;');
  b := false;
  if b then Memo1.Lines.Add('if b then');
  if not b then Memo1.Lines.Add('if not b then');
  if b = false then Memo1.Lines.Add('if b = false then');
  if b = true then Memo1.Lines.Add('if b = true then');

  Memo1.Lines.Add('');
  Memo1.Lines.Add('b := true;');
  b := true;
  if b then Memo1.Lines.Add('if b then');
  if not b then Memo1.Lines.Add('if not b then');
  if b = false then Memo1.Lines.Add('if b = false then');
  if b = true then Memo1.Lines.Add('if b = true then');

  Memo1.Lines.Add('');
  Memo1.Lines.Add('b := 3;');
  b := Boolean(3);
  if b then Memo1.Lines.Add('if b then');
  if not b then Memo1.Lines.Add('if not b then');
  if b = false then Memo1.Lines.Add('if b = false then');
  if b = true then Memo1.Lines.Add('if b = true then');
end;

DeddyH 11. Aug 2010 15:24

AW: Unterschied zwischen "not" und "false"?
 
Möchte noch jemand etwas zum Thema "nicht auf true prüfen" beitragen? 55.071 Users left :stupid:

romber 11. Aug 2010 15:27

AW: Unterschied zwischen "not" und "false"?
 
Vielen Dank für so viele Anregungen!

Zitat:

Zitat von DeddyH (Beitrag 1041242)
...Allerdings sollte man nie auf true oder false prüfen, da dies zumindest bei true in die Hose gehen kann.

Wie meinst Du das?

DeddyH 11. Aug 2010 15:29

AW: Unterschied zwischen "not" und "false"?
 
Hast Du den Code von himitsu einmal ausprobiert?


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:07 Uhr.
Seite 1 von 4  1 23     Letzte »    

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