AGB  ·  Datenschutz  ·  Impressum  







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

"Boolean-Roulette" oder "if x=true"

Ein Thema von glkgereon · begonnen am 22. Mär 2006 · letzter Beitrag vom 22. Mär 2006
Antwort Antwort
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

"Boolean-Roulette" oder "if x=true"

  Alt 22. Mär 2006, 11:24
Hi,

Ein freund im Info-Kurs hat sich gerade eine BoolToStr-Funktion geschrieben...
(Wir haben noch Delphi 4 :-/ )

das ganze sah dann in etwa so aus:
Delphi-Quellcode:
function BoolToStr(Val: Boolean): String;
begin
  Result:='Undefined'; //Debug
  if Val=True then Result:='True'
  else if Val=False then Result:='False';
end;
Interessanterweise kam oft 'Undefined' raus.
Wieso ist (Val=True) False wenn Val=True ist?
Will der mich verarschen?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: "Boolean-Roulette" oder "if x=true"

  Alt 22. Mär 2006, 11:27
Boolean kann auch 0 oder 1 sein, oder nicht?
Delphi-Quellcode:
function BoolToStr(Val: Boolean): String;
begin
  Result:='Undefined'; //Debug
  if Val then Result:='True
  else if not Val then Result:='False';
end;
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#3

Re: "Boolean-Roulette" oder "if x=true"

  Alt 22. Mär 2006, 11:30
Hi!

Ich würde einfach sagen:

Delphi-Quellcode:
function BoolToStr(Val: Boolean): String;
begin
  Result:='Undefined'; //Debug
  if Val=True then Result:='True'
  else Result:='False';
end;
nach else ist in meinen Augen keine Abfrage mehr notwendig.
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#4

Re: "Boolean-Roulette" oder "if x=true"

  Alt 22. Mär 2006, 11:33
Zitat von glkgereon:
Interessanterweise kam oft 'Undefined' raus.
Wieso ist (Val=True) False wenn Val=True ist?
'if Foo = True then' ist ein Vergleich mit der Konstante 'True' (1). Das fällt, meiner Meinung nach unter 'schlechten Stil' und 'Bugs die keiner braucht'...

Mögliche Alternativen:

'if Foo then'
'if Foo <> False then'

'if not Foo then'
'if Foo = False then'
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: "Boolean-Roulette" oder "if x=true"

  Alt 22. Mär 2006, 11:35
Hi

Wie Klaus und Nico schon angedeutet haben, lasse =true generell weg. Hier siehst du auch den Grund dafür.
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#6

Re: "Boolean-Roulette" oder "if x=true"

  Alt 22. Mär 2006, 11:36
Hallo,

das hatten wir doch schon oft.
False ist Null, während alles, was nicht Null ist, als True gewertet wird. Die Konstante True aber ist Eins.
Deshalb darf man zwar auf False prüfen, aber nie auf True. Stattdessen immer
if A then also das = True weglassen.

Gruß
xaromz
  Mit Zitat antworten Zitat
Antwort Antwort


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 13: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