Ja, sicher. Aber was ich sagen wollte ist, dass du hier an den Fall "x = 0" denken musst, und dich irgendwie darum kümmern musst. Beim Inline-If muss ich das eben auch tun, so what? D.h. in einer Situation in der x = 0 sein kann, würde ich es mit 1/x nicht benutzen. Das waren in meiner bislang über 25-jährigen Programmierpraxis allerdings Ausnahmefälle. Wieso sollte ich nur wegen dieser Ausnahmefdälle das Inline-If generell ablehnen? Man muss immer wissen, welches "Werkzeug" man wo und wie einsetzen kann und darf. Und das gilt eben auch für das normale "If", das wollte ich sagen.STARGÅTE hat geschrieben:@Nino:
>> "Auch wenn man das normale "If" benutzt darf man nicht durch 0 dividieren."
Richtig, aber beim normalen If, frage ich das ja vorher auch ab, ob x<>0 und lasse dann nur 1/x zu!
Für das Inline-If gibt es -- wie ich finde -- sehr elegante Anwendungen (s.u.).
Ich finde, für diese Variante spricht durchaus einiges.mhs hat geschrieben:Im einem anderen Thread (http://purebasic.fr/german/viewtopic.ph ... 0&start=10) hatte ich schon mal meine Variante gepostet. Total simpel, dafür nicht komplett Inline, weil die Result Variable mit als Paramter übergeben werden muss... dafür ohne Performanceverlust, doppelter Ausführung der Expression... ist ja schließlich nur ein simples If : Else
Allerdings funktioniert einer meiner Lieblingsanwendungsfälle nur mit der anderen Variante, die sich wie eine Funktion aufrufen lässt:
Code: Alles auswählen
selected = 3
StatusBarText(0, 0, Str(selected) + " Datei" + IifS(selected <> 1, "en", "") + " ausgewählt.")