Diskussion:Yoda Conditions
Absatz Kritik. Moderne Programmiersprachen wie C# erlauben....
[Quelltext bearbeiten]...das stimmt so ganz nicht: Ich kann in C# sehr wohl schreiben: if ((Variable = Eingabe) != 43) --copa017 (Diskussion) 09:45, 21. Okt. 2013 (CEST).
Nur D?
[Quelltext bearbeiten]"In der Programmiersprache D haben Zuweisungen keinen Booleschen Datentyp" - das stimmt auch für Lua, Good Old PASCAL, praktisch alle SQL-Dialekte und -zig weitere - eigentlich praktisch alle, die nicht der C-Welt oder den funktionalen Progsprachen entstammen. Wieso wird hier ausgerechnet D (das m.W. kaum verwendet wird) herausgehoben? --Haraldmmueller (Diskussion) 10:59, 29. Jul. 2018 (CEST)
- "In der Programmiersprache D haben Zuweisungen keinen Booleschen Datentyp" stimmt genau genommen sowieso nicht. --Daniel5Ko (Diskussion) 12:39, 29. Jul. 2018 (CEST)
Vertauschen der Bedingungswerte
[Quelltext bearbeiten]"Das Vertauschen der beiden Bedingungswerte ändert nichts am Verhalten des Programms."
Das mag bei C oder C++ sein, ist aber nicht auf alle Programmiersprachen übertragbar. Ein Gegenbeispiel ist Python:
if not(5>7) == True: print("5 is not greater 7") if True == not(5>7): print("5 is not greater 7")
Siehe auch Why is 'True == not False' a syntax error in Python?
--5.158.162.136 15:44, 12. Okt. 2020 (CEST)
- Ich denke, was gemeint ist, ist, dass, wenn man Yoda Conditions einsetzt, die Voraussetzung ist, dass die Vertauschung nichts am Programmverhalten ändert. Wenn das nicht so ist, dann kann man eben nicht vertauschen (so "yoda" das wäre ...). Und so sollte man's dann auch formulieren, z.B.
- Yoda Conditions kann man nur dort verwenden, wo das Vertauschen der beiden Bedingungswerte nichts am Verhalten des Programms ändert.
- Ganz rausstreichen dieses Satzes ist m.E genau so schlecht, wie ihn drin stehen lassen, weil dann implizit viele Leser glauben, dass man das "immer" tun kann.
- --Haraldmmueller (Diskussion) 16:15, 12. Okt. 2020 (CEST)
- Also Python ist kein Gegenbeispiel, der Code oben wird nur falsch interpretiert, richtig wäre:
if (not 5>7) == True: print("5 is not greater 7") if True == (not 5>7): print("5 is not greater 7")
- und das funktioniert. Natürlich darf das Vertauschen der Seiten nicht zu falscher Klammerung führen, sonst hat man nicht "die beiden Bedingungswerte vertauscht". --androl ☖☗ 16:15, 27. Okt. 2021 (CEST)