![]() |
b <> 0
Hallo, ich hab nur eine Eleganzfrage, also es funktioniert schon.
Wie kann ich
Delphi-Quellcode:
eleganter machen? Ich hab diese Klausel sehr häufig, bei vielen Rechnungen kann bei b 0 rauskommen.
if b<>0 then
a:=a/b |
Re: b <> 0
Delphi-Quellcode:
Vielleicht auch so:
// Als Procedure
procedure MyDiv(var Dividend: Single; Divisor: Single); begin if (Divisor <> 0) then Dividend := Dividend / Divisor; end; // Als Funktion: function MyDiv(Dividend, Divisor: Single): Single; begin if (Divisor <> 0) then Result := Dividend / Divisor; end; // Aufrufe: // Procedure: MyDiv(Dividend, Divisor); // Funktion: Dividend := MyDiv(Dividend, Divisor);
Delphi-Quellcode:
[edit] Schöne Variablennamen ;) [/edit]
// Als Funktion, die true zurück gibt, wenn geteilt wurde:
function MyDiv(var Dividend: Single; Divisor: Single): Boolean; begin Result := Divisor <> 0; if (Result) then Dividend := Dividend / Divisor; end; // Aufruf if (MyDiv(Dividend,Divisor)) then // es wurde geteilt else // es wurde nicht geteilt |
Re: b <> 0
Macht er / mach ich doch oder hab ich was übersehen?
Mensch, Markus :mrgreen: Nicht wegeditieren :stupid: |
Re: b <> 0
Hallo,
dieses IF-Statement ist für sich genommen nicht verbesserungsfähig, lediglich bessere Variablennamen könnten eventuell noch Pluspunkte bringen. Grüße vom marabu |
Re: b <> 0
Zitat:
[edit] Hab sie geändert :stupid: [/edit] |
Re: b <> 0
ok danke, ich glaub ich lass es dann mal so, dann ist halt die zeile ein wenig länger. ich hab schon ziemlich viele eigene funktionen xD
|
Re: b <> 0
Hallo!
Du kannst auch einfach am Anfang von deinem Programm Set8087CW($133f); schreiben dann gibt es keine Fehler beim teilen durch 0 :) Liebe Grüsse Laufi |
Re: b <> 0
Zitat:
Und Fehlermeldungen unterdrücken ist nicht gerade sehr elegant, dann lieber programmseitig abfangen. |
Re: b <> 0
Ic C# könnte man es so machen, aber Delphi solche Konstrukte leider nicht:
Code:
Aber was hast du denn für ein Problem damit, deinen Code so zu verwenden wie du ihn hast :gruebel:
a = (b != 0) ? a / b : a;
Delphi-Quellcode:
Das ist grad mal 1 Zeichen mehr :mrgreen:
if b <> 0 then a := a / b;
|
Re: b <> 0
Delphi-Quellcode:
Result := IfThen(Divisor <> 0, Dividend/Divisor, Dividend);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:00 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