![]() |
Delphi-Version: 5
"if boolean then if" ersetzen
Hej,
(wie) kann ich folgende Abfrage durch eine einfachere logische Verknüpfung ersetzen?
Delphi-Quellcode:
Bin nach einigem Probieren noch auf keine Lösung gekommen, um die holprigen if-Abfragen zu umgehen.
var
showzero : boolean; if showzero then showvalue else if y>0 then showvalue; danke und gruß thomas |
AW: "if boolean then if" ersetzen
Ungefähr so:
Delphi-Quellcode:
Oder habe ich jetzt was übersehen? :gruebel:
var
showzero : boolean; if showzero or (y>0) then showvalue @xaromz (unter mir): Deins ist auf jeden Fall identisch mit meinem. Denn wenn showzero wahr ist, ist das Ergebnis der and Verknüpfung irrelevant. Und wenn showzero falsch ist, steht links von dem and ein wahr, damit wird das and überflüssig ;-) |
AW: "if boolean then if" ersetzen
Hallo,
Delphi-Quellcode:
Gruß
var
showzero : boolean; if (showzero or (not showzero and (y > 0))) then showvalue; xaromz |
AW: "if boolean then if" ersetzen
@xaromz: Theoretisch hast du Recht und dein Code entspricht funktional genau dem ursprünglichen statement, aber praktisch kann man das auf die Version von jfheins zusammankürzen.
|
AW: "if boolean then if" ersetzen
Himmel. Eine einfache or hat's getan. Danke!
Meine Konstruktionen waren auch nahe dran an dem, was xaromz gefunden hat (in punkto umständlich), aber dann doch falsch ... peinlich ... :oops: Danke jedenfalls! |
AW: "if boolean then if" ersetzen
Hallo,
Zitat:
Gruß xaromz |
AW: "if boolean then if" ersetzen
Hi xaromz,
magst du mir einmal erlären, wie sich die Aussagen unterscheiden? Ich sehe jetzt erstmal keine Möglichkeit, dass sich das Programm bei der Variante von jfheins anders verhalten sollte als in deiner oder der Ursprungsvariante. verwirrte Grüße |
AW: "if boolean then if" ersetzen
Hallo,
das eine Programm ruft die Funktion auf, wenn a) showzero gesetzt ist oder b) y größer Null ist. Das andere Programm ruft die Funktion auf, wenn a) schowzero gesetzt ist oder b) y größer Null ist, aber showzero nicht gesetzt ist. Gruß xaromz |
AW: "if boolean then if" ersetzen
Dann hättest du, genauso wie jfheins, ein xor verwenden müssen, da das bei dir grad so nach "entweder" oder klingt. Es macht an dieser Stelle aber wirklich keinen Unterschied im Ergebnis, das würde es nur wenn unterschiedliche Funktionen in den if- und else-Zweigen aufgerufen würden.
|
AW: "if boolean then if" ersetzen
Naja..das ursprüngliche konstrukt und die sehr kompakte variante reagieren aber gleich.
Deswegen ist noch die relevanz der zustände zu klären, ich sehe ansonsten auch keinen unterschied. Ursprünglich: Wenn showzero gesetzt -> Dann ShowValue Wenn showzero aber nicht gesetzt und Y wenigstens > Null -> ShowValue Keiner der beiden zustände schließt den anderen aus. Und wie Medium bereits gesagt(hui RoterKasten^^) wird bei beiden bedingungen dasselbe aufgerufen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:23 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