<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Verkürzte If-Abfrage hier sinnvoll?]]></title><description><![CDATA[<p>Guten Abend zusammen,<br />
da ich meinen Quelltext immer kurz halten möchte, greife ich häufiger mal auf die verkürzte If - Abfrage zu. Ich verwende sie meistens aber nur, um einfache Fallunterscheidungen wie Rückgabe des Betragwertes durchzuführen. Nun habe ich eine &quot;längere&quot; Zuweisung, doch ohne die verkürzte if Abfrage, wäre der Quelltext wieder um 6 Zeilen länger. Ist es &quot;schön&quot; auch hier eine solche verkürzte If Abfrage zu nutzen?</p>
<pre><code class="language-cpp">(xmin &lt;=0) ? xbreite = AbsVal(xmin) + xmax : xbreite = -xmin + xmax;
 (ymin &lt;=0) ? ybreite = AbsVal(ymin) + ymax : ybreite = -ymin + ymax;
</code></pre>
<p>Mit if und else wäre es eindeutig länger.</p>
<p>Vielen Dank<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/257825/verkürzte-if-abfrage-hier-sinnvoll</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 23:20:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/257825.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 03 Jan 2010 20:56:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verkürzte If-Abfrage hier sinnvoll? on Sun, 03 Jan 2010 20:56:57 GMT]]></title><description><![CDATA[<p>Guten Abend zusammen,<br />
da ich meinen Quelltext immer kurz halten möchte, greife ich häufiger mal auf die verkürzte If - Abfrage zu. Ich verwende sie meistens aber nur, um einfache Fallunterscheidungen wie Rückgabe des Betragwertes durchzuführen. Nun habe ich eine &quot;längere&quot; Zuweisung, doch ohne die verkürzte if Abfrage, wäre der Quelltext wieder um 6 Zeilen länger. Ist es &quot;schön&quot; auch hier eine solche verkürzte If Abfrage zu nutzen?</p>
<pre><code class="language-cpp">(xmin &lt;=0) ? xbreite = AbsVal(xmin) + xmax : xbreite = -xmin + xmax;
 (ymin &lt;=0) ? ybreite = AbsVal(ymin) + ymax : ybreite = -ymin + ymax;
</code></pre>
<p>Mit if und else wäre es eindeutig länger.</p>
<p>Vielen Dank<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1831788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1831788</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Sun, 03 Jan 2010 20:56:57 GMT</pubDate></item><item><title><![CDATA[Reply to Verkürzte If-Abfrage hier sinnvoll? on Sun, 03 Jan 2010 21:00:25 GMT]]></title><description><![CDATA[<p>freakC++ schrieb:</p>
<blockquote>
<p>Guten Abend zusammen,<br />
da ich meinen Quelltext immer kurz halten möchte, greife ich häufiger mal auf die verkürzte If - Abfrage zu. Ich verwende sie meistens aber nur, um einfache Fallunterscheidungen wie Rückgabe des Betragwertes durchzuführen. Nun habe ich eine &quot;längere&quot; Zuweisung, doch ohne die verkürzte if Abfrage, wäre der Quelltext wieder um 6 Zeilen länger. Ist es &quot;schön&quot; auch hier eine solche verkürzte If Abfrage zu nutzen?</p>
<pre><code class="language-cpp">(xmin &lt;=0) ? xbreite = AbsVal(xmin) + xmax : xbreite = -xmin + xmax;
 (ymin &lt;=0) ? ybreite = AbsVal(ymin) + ymax : ybreite = -ymin + ymax;
</code></pre>
<p>Mit if und else wäre es eindeutig länger.</p>
<p>Vielen Dank<br />
lg, freakC++</p>
</blockquote>
<p>Finde das nicht mehr schön...</p>
<p>Sowas hier ist okay, aber bei ist das übertrieben...</p>
<pre><code class="language-cpp">std::cout &lt;&lt; isActivated ? &quot;on&quot; : &quot;off&quot; &lt;&lt; std::endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1831796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1831796</guid><dc:creator><![CDATA[asdasd]]></dc:creator><pubDate>Sun, 03 Jan 2010 21:00:25 GMT</pubDate></item><item><title><![CDATA[Reply to Verkürzte If-Abfrage hier sinnvoll? on Sun, 03 Jan 2010 21:04:21 GMT]]></title><description><![CDATA[<p>Also ich finds nicht schlimm. Ich verstehe bei einmaligem lesen, was du da machen willst, also ist da imo nix dran auszusetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1831800</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1831800</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 03 Jan 2010 21:04:21 GMT</pubDate></item><item><title><![CDATA[Reply to Verkürzte If-Abfrage hier sinnvoll? on Sun, 03 Jan 2010 21:10:23 GMT]]></title><description><![CDATA[<p>freakC++ schrieb:</p>
<blockquote>
<pre><code class="language-cpp">(xmin &lt;=0) ? xbreite = AbsVal(xmin) + xmax : xbreite = -xmin + xmax;
(ymin &lt;=0) ? ybreite = AbsVal(ymin) + ymax : ybreite = -ymin + ymax;
</code></pre>
</blockquote>
<p>Wenn schon <code>operator?:</code> , dann richtig. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<pre><code class="language-cpp">xbreite = (xmin &lt;= 0) ? AbsVal(xmin) + xmax : -xmin + xmax;
ybreite = (ymin &lt;= 0) ? AbsVal(ymin) + ymax : -ymin + ymax;
</code></pre>
<p>Oder ganz ohne Redundanz:</p>
<pre><code class="language-cpp">xbreite = xmax + (xmin &lt;= 0 ? AbsVal(xmin) : -xmin);
ybreite = ymax + (ymin &lt;= 0 ? AbsVal(ymin) : -ymin);
</code></pre>
<p>Und die Standard-Betragsfunktion <code>std::abs()</code> kennst du?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1831802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1831802</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 03 Jan 2010 21:10:23 GMT</pubDate></item><item><title><![CDATA[Reply to Verkürzte If-Abfrage hier sinnvoll? on Sun, 03 Jan 2010 21:11:27 GMT]]></title><description><![CDATA[<p>ich würde es wahrscheinlich eher wie Nexus schreiben...</p>
<p>2. Mal so am Rande, was macht deine AbsVal-Funktion? Etwa den Absoluten Wert berechnen? also so wie abs?</p>
<p>Wenn ja, brauchst du nur:</p>
<pre><code class="language-cpp">xbreite = xmax - xmin;
ybreite = ymax - ymin;
</code></pre>
<p>Kommt auf das selbe raus, da abs von einer negativen Zahl -x ist, dann sind bei argumente gleich und das ganze Problem stellt sich nicht mehr...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1831805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1831805</guid><dc:creator><![CDATA[uhsuhz]]></dc:creator><pubDate>Sun, 03 Jan 2010 21:11:27 GMT</pubDate></item><item><title><![CDATA[Reply to Verkürzte If-Abfrage hier sinnvoll? on Sun, 03 Jan 2010 21:13:55 GMT]]></title><description><![CDATA[<p>Genau die Variante von Nexus finde ich unleserlich. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Da musste ich ein paar mal nach hinten und vorne springen, um zu sehen, was er da eigentlich machen will. :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1831807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1831807</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 03 Jan 2010 21:13:55 GMT</pubDate></item><item><title><![CDATA[Reply to Verkürzte If-Abfrage hier sinnvoll? on Sun, 03 Jan 2010 21:14:34 GMT]]></title><description><![CDATA[<p>freakC++ schrieb:</p>
<blockquote>
<pre><code class="language-cpp">(xmin &lt;=0) ? xbreite = AbsVal(xmin) + xmax : xbreite = -xmin + xmax;
 (ymin &lt;=0) ? ybreite = AbsVal(ymin) + ymax : ybreite = -ymin + ymax;
</code></pre>
<p>Mit if und else wäre es eindeutig länger.</p>
</blockquote>
<pre><code class="language-cpp">if (xmin &lt;= 0) xbreite = AbsVal(xmin) + xmax; else xbreite = -xmin + xmax;
</code></pre>
<p>Stimmt, eindeutig länger. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
?: ist nicht als verkürzte if-&quot;Abfrage&quot; gedacht, sondern als bedingter Ausdruck. Siehe Vorposter (Nexus).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1831808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1831808</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Sun, 03 Jan 2010 21:14:34 GMT</pubDate></item><item><title><![CDATA[Reply to Verkürzte If-Abfrage hier sinnvoll? on Sun, 03 Jan 2010 21:23:28 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Genau die Variante von Nexus finde ich unleserlich. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Da musste ich ein paar mal nach hinten und vorne springen, um zu sehen, was er da eigentlich machen will. :p</p>
</blockquote>
<p>Soso. Und</p>
<pre><code class="language-cpp">(xmin &lt;=0) ? xbreite = AbsVal(xmin) + xmax : xbreite = -xmin + xmax; 
(ymin &lt;=0) ? ybreite = AbsVal(ymin) + ymax : ybreite = -ymin + ymax;
</code></pre>
<p>ist wahnsinnig übersichtlich, oder? :p</p>
<p>Wenn man den ternären Operator für ganze Anweisungen missbraucht, kann man genauso gut <code>if</code> nehmen, dann hat man wenigstens noch Syntaxhighlighting. Und die Zeilen zu trennen wäre wohl auch nicht allzu tragisch...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1831816</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1831816</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 03 Jan 2010 21:23:28 GMT</pubDate></item><item><title><![CDATA[Reply to Verkürzte If-Abfrage hier sinnvoll? on Sun, 03 Jan 2010 21:25:56 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>Genau die Variante von Nexus finde ich unleserlich. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Da musste ich ein paar mal nach hinten und vorne springen, um zu sehen, was er da eigentlich machen will. :p</p>
</blockquote>
<p>Soso. Und</p>
<pre><code class="language-cpp">(xmin &lt;=0) ? xbreite = AbsVal(xmin) + xmax : xbreite = -xmin + xmax; 
(ymin &lt;=0) ? ybreite = AbsVal(ymin) + ymax : ybreite = -ymin + ymax;
</code></pre>
<p>ist wahnsinnig übersichtlich, oder? :p</p>
<p>Wenn man den ternären Operator für ganze Anweisungen missbraucht, kann man genauso gut <code>if</code> nehmen, dann hat man wenigstens noch Syntaxhighlighting. Und die Zeilen zu trennen wäre wohl auch nicht allzu tragisch...</p>
</blockquote>
<p>Und dann noch Klammern drum, um zu vermeiden, dass die später fehlen, falls man doch noch was machen will... Und dann wären wir bei meiner Definition von schönen Code <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<pre><code class="language-cpp">if (xmin &lt;= 0) 
{
    xbreite = AbsVal(xmin) + xmax; 
{
else 
{
    xbreite = -xmin + xmax; 	
}
</code></pre>
<p>Schön != Kurz ;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1831823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1831823</guid><dc:creator><![CDATA[rtztrzrzr]]></dc:creator><pubDate>Sun, 03 Jan 2010 21:25:56 GMT</pubDate></item><item><title><![CDATA[Reply to Verkürzte If-Abfrage hier sinnvoll? on Sun, 03 Jan 2010 21:31:22 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
vielen Dank für die raschen Antworten. Ich gebe zu, dass mein Code hässlich war und dass Nexus ihn erstmal verschönert hat. Vielen Dank dafür. Wenn man irgendwie rumprobiert, dann achtete ich darauf irgendwie nicht und komme auf eine Schreibweise wie die von Nexus nicht. Die Funktion std::abs() kannte ich nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> ! Wieder was gelernt!</p>
<p>Die beste Lösung kommt aber eigentlich von uhsuhz. Wie wärs ganze ohne Fallunterscheidung <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> ? Das ich das nicht sehe und dann kommen da solch komische Konstrukte heraus...</p>
<p>Ich kenne zwar die Regel Schön != Kurz, doch in diesem Fall denke ich dass gilt:</p>
<p>Schön == Kurz</p>
<p>weshalb ich uhsuhz Lösung nehme!</p>
<p>Vielen Dank euch allen<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1831825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1831825</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Sun, 03 Jan 2010 21:31:22 GMT</pubDate></item><item><title><![CDATA[Reply to Verkürzte If-Abfrage hier sinnvoll? on Sun, 03 Jan 2010 21:34:26 GMT]]></title><description><![CDATA[<p>Muss uhsuhz recht geben. Sieht alles nach einer komplizierten Version von</p>
<pre><code class="language-cpp">breite = xmax - xmin;
hoehe  = ymax - ymin;
</code></pre>
<p>aus.</p>
<p>Und sonst würde ich Nexus' Variante vorziehen. Ich versuche auch immer den Teil um : so kurz wie möglich zu bekommen, indem ich Gemeinsames &quot;ausklammere&quot;...</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1831827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1831827</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Sun, 03 Jan 2010 21:34:26 GMT</pubDate></item><item><title><![CDATA[Reply to Verkürzte If-Abfrage hier sinnvoll? on Sun, 03 Jan 2010 21:54:28 GMT]]></title><description><![CDATA[<p>freakC++ schrieb:</p>
<blockquote>
<p>da ich meinen Quelltext immer kurz halten möchte, greife ich häufiger mal auf die verkürzte If - Abfrage zu.</p>
</blockquote>
<p>Das hat mich schon beim Lehrer meines PHP-Kurses genervt.<br />
Bitte merke Dir: Der ternäre Operator ist nicht dazu da, als Kurzschreibweise für if und else zweckentfremdet zu werden. Benutze ihn nur, wenn Du den Rückgabewert wirklich brauchst. In Deinem Fall wäre, wie schon gesagt wurde, statt</p>
<pre><code class="language-cpp">(xmin &lt;=0) ? xbreite = AbsVal(xmin) + xmax : xbreite = -xmin + xmax;
</code></pre>
<p>folgendes durchaus sinnvoll:</p>
<pre><code class="language-cpp">xbreite = xmin &lt;= 0 ? AbsVal(xmin) + xmax : -xmin + xmax;
</code></pre>
<p>bzw.</p>
<pre><code class="language-cpp">xbreite = (xmin &lt;= 0 ? AbsVal(xmin) : -xmin) + xmax;
</code></pre>
<p>Damit vermeidet man nämlich Redundanzen. Aber ein simples</p>
<pre><code class="language-cpp">if (Bedingung)
    Anweisung1();
else
    Anweisung2();
</code></pre>
<p>als</p>
<pre><code class="language-cpp">Bedingung ? Anweisung1() : Anweisung2();
</code></pre>
<p>schreiben, ist Zweckentfremdung allererster Güte. Der ternäre Operator ist nicht dazu da, den Code kürzer zu machen, sondern Dopplungen zu vermeiden: Bei</p>
<pre><code class="language-cpp">if (Bedingung)
    x = Wert1;
else
    x = Wert2;
</code></pre>
<p>könnte es ja passieren, daß ich nicht mehr x, sondern y zuweisen will. Dann müßte ich hier an beiden Stellen x durch y austauschen. Beim ternären Operator müßte ich das nur einmal machen:</p>
<pre><code class="language-cpp">x = Bedingung ? Wert1 : Wert2;
</code></pre>
<p>Oder auch solche Spielchen:</p>
<pre><code class="language-cpp">if (Bedingung)
    Funktion(1, 5, &quot;Hallo&quot;, 7.9);
else
    Funktion(1, 22, &quot;Hallo&quot;, 7.9);
</code></pre>
<p>Da benutzt man den ternären Operator nicht, weil er kürzer ist, sondern weil Redundanzen vermieden werden:</p>
<pre><code class="language-cpp">Funktion(1, Bedingung ? 5 : 22, &quot;Hallo&quot;, 7.9);
</code></pre>
<p>Also: Den ternären Operator wirklich nur nehmen, wenn der Rückgabewert interessiert und nicht als Kurzschreibweise für if und else mißbrauchen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1831842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1831842</guid><dc:creator><![CDATA[NES-Spieler]]></dc:creator><pubDate>Sun, 03 Jan 2010 21:54:28 GMT</pubDate></item><item><title><![CDATA[Reply to Verkürzte If-Abfrage hier sinnvoll? on Mon, 04 Jan 2010 08:28:57 GMT]]></title><description><![CDATA[<p>Jap, werde ich mir merken. Hier interessier jedoch der Rückgabewert, wehalb hier der tenäre Operator (heißt der so?) angebracht ist. Dennoch nehme ich nun gar keine Fallunterscheidung.</p>
<p>Vielen Dank<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1831979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1831979</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Mon, 04 Jan 2010 08:28:57 GMT</pubDate></item></channel></rss>