AGB  ·  Datenschutz  ·  Impressum  







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

Unterschied zwischen "not" und "false"?

Ein Thema von romber · begonnen am 11. Aug 2010 · letzter Beitrag vom 12. Aug 2010
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Unterschied zwischen "not" und "false"?

  Alt 11. Aug 2010, 15:08
Delphi-Version: 2005
Hallo!

Gibt es irgenwelche Unterschied zwischen

if irgendwas = false then und

if not irgendwas then Sind die beide Methoden gleich schnell?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

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

  Alt 11. Aug 2010, 15:10
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#3

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

  Alt 11. Aug 2010, 15:12
Beides ist gleich.

Nur das...
if irgendwas = false then
zum ko**en ist! Und nicht wirklich guter Stil.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

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

  Alt 11. Aug 2010, 15:13
Ja

Tut man nicht if irgendwas = false then Das ist korrekt 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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von vlees91
vlees91

Registriert seit: 19. Apr 2004
843 Beiträge
 
Turbo Delphi für Win32
 
#5

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

  Alt 11. Aug 2010, 15:13
if irgendwas = false then und

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 if (irgendwas = true) then macht, wird dies
Code:
cmp bl,1
jz xxx
und 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.
vlees91

Geändert von vlees91 (11. Aug 2010 um 15:28 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

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

  Alt 11. Aug 2010, 15:17
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

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

  Alt 11. Aug 2010, 15:20
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;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#8

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

  Alt 11. Aug 2010, 15:24
Möchte noch jemand etwas zum Thema "nicht auf true prüfen" beitragen? 55.071 Users left
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#9

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

  Alt 11. Aug 2010, 15:27
Vielen Dank für so viele Anregungen!

...Allerdings sollte man nie auf true oder false prüfen, da dies zumindest bei true in die Hose gehen kann.
Wie meinst Du das?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#10

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

  Alt 11. Aug 2010, 15:29
Hast Du den Code von himitsu einmal ausprobiert?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz