<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Yoda_Conditions</id>
	<title>Yoda Conditions - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Yoda_Conditions"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Yoda_Conditions&amp;action=history"/>
	<updated>2026-06-03T01:47:01Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Yoda_Conditions&amp;diff=2417876&amp;oldid=prev</id>
		<title>~2025-29986-84: /* Weblinks */ Remove link which has nothing to do with programming.</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Yoda_Conditions&amp;diff=2417876&amp;oldid=prev"/>
		<updated>2025-10-28T07:10:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Weblinks: &lt;/span&gt; Remove link which has nothing to do with programming.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Yoda Conditions&amp;#039;&amp;#039;&amp;#039; (auch: &amp;#039;&amp;#039;Yoda Notations&amp;#039;&amp;#039;) bezeichnen im [[Programmierer|Programmierjargon]] eine Schreibweise [[Bedingte Anweisung und Verzweigung|bedingter Anweisungen]], bei der die beiden Operanden eines Vergleichs die Position tauschen. Die Bezeichnung für diesen [[Programmierstil]] leitet sich aus der Figur [[Figuren aus Star Wars#Yoda|Yoda]] aus dem [[Star Wars|Star-Wars]]-Universum ab, die dazu neigte, einige Wörter innerhalb eines Satzes zu vertauschen.&amp;lt;ref&amp;gt;{{Internetquelle&lt;br /&gt;
| url=http://amorphe-welt.blogspot.com/2010/05/debuggen-du-musst-yoda-conditions-in.html&lt;br /&gt;
| sprache=deutsch&lt;br /&gt;
| titel=debuggen du musst – Yoda Conditions in PHP&lt;br /&gt;
| datum=2010-05-10&lt;br /&gt;
| zugriff=2011-09-22&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
Gewöhnlicherweise schreiben Programmierer eine Bedingung, in diesem Fall eine bedingte Anweisung, so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if (wert == 42) { /* ... */ }&lt;br /&gt;
// Liest sich wie: Wenn Wert gleich 42...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Yoda Conditions bezeichnen nun die umgekehrte Stellung des Ausdruckinhalts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if (42 == wert) { /* ... */ }&lt;br /&gt;
// Liest sich wie: Wenn 42 gleich Wert...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei diesem Programmierstil werden demnach zuerst die [[Konstante (Programmierung)|Konstanten]] aufgeführt und danach der variable Vergleichswert. Analog zur Aussprache des Namensgebers &amp;#039;&amp;#039;Yoda&amp;#039;&amp;#039; („Vergessen du musst was früher du gelernt“) führt dies zu einer seltsam anmutenden Aussprache der Kondition: „Wenn &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt; gleich &amp;lt;code&amp;gt;wert&amp;lt;/code&amp;gt; ist …“.&lt;br /&gt;
&lt;br /&gt;
== Vorteil ==&lt;br /&gt;
Obwohl sich diese Schreibweise für den [[Programmierer]] schlechter lesen lässt als die im ersten Beispiel, hat sie einen Vorteil in Programmiersprachen, die Wertzuweisungen in einem Ausdruck mittels = realisieren und implizite [[Konvertierung (Informatik)|Umwandlung]] von Zahlen in [[Wahrheitswert]]e erlauben: man kann so den Flüchtigkeitsfehler ausschließen, statt der Bedingung eine Wertzuweisung zu formulieren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if (wert = 42) { /* ... */ }&lt;br /&gt;
// Ist (unbeabsichtigt vom Programmierer) immer wahr und ändert den Inhalt von wert&lt;br /&gt;
&lt;br /&gt;
if (42 = wert) { /* ... */ }&lt;br /&gt;
// Erzeugt einen Syntaxfehler&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das untere Beispiel verhindert den Flüchtigkeitsfehler, da während der Laufzeit oder beim [[Kompilierung|Kompilieren]] ein Fehler ausgegeben bzw. erzeugt wird: 42 ist eine Konstante; dieser kann kein Wert zugewiesen werden&amp;lt;ref&amp;gt;{{Internetquelle| autor=Nils Langner| url=http://www.phphatesme.com/blog/allgemein/yoda-conditions/| sprache=deutsch| titel=Yoda Conditions| datum=2010-07-26| zugriff=2011-09-22}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In manchen Sprachen kann so auch die ungültige Dereferenzierung eines [[Nullwert]]s vermieden werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
String wert = null;&lt;br /&gt;
if (wert.equals(&amp;quot;foobar&amp;quot;)) { /* ... */ }&lt;br /&gt;
// In Java tritt eine NullPointerException auf&lt;br /&gt;
&lt;br /&gt;
if (&amp;quot;foobar&amp;quot;.equals(wert)) { /* ... */ }&lt;br /&gt;
// Ist (wie erwartet) immer falsch&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kritik ==&lt;br /&gt;
Kritiker des Notationsstils sehen die mangelhafte Lesbarkeit als überwiegenden Nachteil an, der das vermeintliche Problem des oben beschriebenen Flüchtigkeitsfehlers nicht aufwiegt. Dabei wird angeführt, dass moderne [[Integrierte Entwicklungsumgebung|Entwicklungsumgebungen]] diese Zeile als möglichen Fehler markieren. Manche Programmiersprachen erlauben zudem eine Variablenzuweisung innerhalb einer Kondition ohnehin nicht.&amp;lt;ref&amp;gt;{{Internetquelle| url=http://pushinginertia.com/Why-Yoda-conditions-are-bad-and-usage-of-Javas-final-keyword-is-good/| titel=Why Yoda conditions are bad and usage of Java’s ‘final’ keyword is good| datum=2011-05-15| zugriff=2011-09-22}}&amp;lt;/ref&amp;gt; Zum Beispiel in der [[D (Programmiersprache)|Programmiersprache D]] sind Zuweisungen nicht vom Datentyp [[Boolean]] und können somit nicht als &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;-Bedingung verwendet werden.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Programmierstil]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://blogs.msdn.com/b/cdndevs/archive/2010/05/09/new-programming-jargon.aspx New programming jargon] Erwähnung der Yoda Conditions als Teil einer Sammlung über Begriffe aus dem Programmierjargon&lt;br /&gt;
* [http://thomas.tuerke.net/on/design/?thread=1126037863#msg1146181680 Yoda Notation von Coding in Style]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Programmierung]]&lt;/div&gt;</summary>
		<author><name>~2025-29986-84</name></author>
	</entry>
</feed>