Bedingungsoperator(Java) als Macro

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Bedingungsoperator(Java) als Macro

Beitrag von CSHW89 »

Hi Leute,

habe mal wieder ein Minimacro für euch. Für alle, die den Bedingungsoperator aus Java kennen, mit Bool() geht er nun auch in PB :), allerdings mit Einschränkungen. Geht nur mit Zahlen, also nicht mit Strings, und die Werte werden alle ausgerechnet. Man sollte also keine großen Berechnungen durchführen:

Code: Alles auswählen

Macro ifo(_expr_, _first_, _second_)
  ((_first_) * Bool(_expr_) + (_second_) * (1-Bool(_expr_)))
EndMacro

a = -4
b = ifo(a<0, -a, a) / a

Debug "Signum von " + a + " = " + b
lg Kevin
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Bedingungsoperator(Java) als Macro

Beitrag von STARGÅTE »

Jo, an eine Funktion
Result = If(Query, True, False)
hatte ich auch schon mal gedacht.
Aber genau aus dem Grund: "die Werte werden alle ausgerechnet"
hab ich mich dann dagegen entschieden.

Trotzdem ist es eine nette Zeilenersparnis für keine "Zeitlose" abfragen.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten