<?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[ODER operator&amp;quot;||&amp;quot; in verkürzter form anwenden]]></title><description><![CDATA[<p>Hi!<br />
Programmiere zurzeit ein Programm, das mich ein bissel Schreibarbeit kostet, und würde gern wissen ob es geht, dass man so was ähnliches schreiben könnte:</p>
<pre><code class="language-cpp">if(a==b||c){...}
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">if(a==(b||c){...}
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">if(a==(b|c)){...}
</code></pre>
<p>vd im Voraus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /> <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="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/286633/oder-operator-quot-quot-in-verkürzter-form-anwenden</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 20:32:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/286633.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 May 2011 13:57:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ODER operator&amp;quot;||&amp;quot; in verkürzter form anwenden on Fri, 13 May 2011 13:58:36 GMT]]></title><description><![CDATA[<p>Hi!<br />
Programmiere zurzeit ein Programm, das mich ein bissel Schreibarbeit kostet, und würde gern wissen ob es geht, dass man so was ähnliches schreiben könnte:</p>
<pre><code class="language-cpp">if(a==b||c){...}
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">if(a==(b||c){...}
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">if(a==(b|c)){...}
</code></pre>
<p>vd im Voraus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /> <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="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062780</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 13 May 2011 13:58:36 GMT</pubDate></item><item><title><![CDATA[Reply to ODER operator&amp;quot;||&amp;quot; in verkürzter form anwenden on Fri, 13 May 2011 14:03:33 GMT]]></title><description><![CDATA[<p>Das kann man so schreiben, aber ich bezweifle, dass du verstehst, was das macht. Es prüft jedenfalls nicht ob a gleich b oder a gleich c ist. Falls du letzteres meinst, dann musst du schon <code>a==b or a==c</code> schreiben. Sei nicht so faul.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062782</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 13 May 2011 14:03:33 GMT</pubDate></item><item><title><![CDATA[Reply to ODER operator&amp;quot;||&amp;quot; in verkürzter form anwenden on Fri, 13 May 2011 14:05:22 GMT]]></title><description><![CDATA[<p>ja das meint ich ja</p>
<p>if((a==b)||(a==c))</p>
<p>wollt ich nur versuchen zu kürzen.<br />
Ist ja OK wenns nicht geht.<br />
Wollts nur wissen... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062783</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 13 May 2011 14:05:22 GMT</pubDate></item><item><title><![CDATA[Reply to ODER operator&amp;quot;||&amp;quot; in verkürzter form anwenden on Fri, 13 May 2011 14:08:55 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">if(a==(b||c){...}
</code></pre>
<p>würde nicht gehen, weil da noch was fehlt (Klammer). Alle drei Überprüfungen machen völlig unterschiedliche Sachen (über die du dich informieren solltest).<br />
Abgesehen vom Weglassen der Klammer jeweils um <code>a==b</code> und <code>a==c</code> kannst du da nicht viel kürzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062788</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Fri, 13 May 2011 14:08:55 GMT</pubDate></item><item><title><![CDATA[Reply to ODER operator&amp;quot;||&amp;quot; in verkürzter form anwenden on Fri, 13 May 2011 14:12:07 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>aha, ähmm...<br />
was machts den so? <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="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Nun, erst einmal holen wir uns eine Tabelle in der die Operatorproritäten stehen:<br />
<a href="http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Operator_precedence" rel="nofollow">http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Operator_precedence</a></p>
<p>Wir sehen, dass == vor || kommt. Das bedeutet, der Ausdruck a==b||c wird so ausgewertet: (a==b) || c. Der Rückgabewert von == ist entweder true oder false, je nachdem ob a gleich b oder nicht. Dieses Ergebnis wird dann mit dem Wert von c verodert. Damit das Funktioniert, wird c zuerst implizit in einen bool umgewandelt, das heißt wenn c gleich 0 war, wird es false und ansonsten true.</p>
<p>Der Ausdruck a==(b||c) ist durch die Klasmmerung anders: Hier werden zuerst b und c verodert. Gleiches vorgehen wie oben, das heißt das Ergebnis ist true, falls einer von den beiden ungleich 0 war und false, falls beide 0 waren. Dieses true/false Ergebnis wird dann mit a verglichen.</p>
<p>Und der letzte Ausdruck macht wiederum ganz etwas anderes. Das bitweise oder hat nicht viel mit dem logischen oder zu tun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062789</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 13 May 2011 14:12:07 GMT</pubDate></item><item><title><![CDATA[Reply to ODER operator&amp;quot;||&amp;quot; in verkürzter form anwenden on Fri, 13 May 2011 14:12:17 GMT]]></title><description><![CDATA[<p>die Klammer hab ich ausversehen vergessen, aber ok.<br />
Nein, schon kapiert,<br />
Ich wollte einfach nicht so dumm sein und doppelt so viel wie nötig schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062790</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062790</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 13 May 2011 14:12:17 GMT</pubDate></item><item><title><![CDATA[Reply to ODER operator&amp;quot;||&amp;quot; in verkürzter form anwenden on Fri, 13 May 2011 14:17:22 GMT]]></title><description><![CDATA[<p>Du musst wahrscheinlich auch nicht so viel schreiben, wie du denkst - nur ist die Lösung eine andere.<br />
Wenn ich raten sollte, bist du gerade dabei, eine ganze Reihe von gigantischen if-Bedingungen zu konstruieren, das sehe ich öfters.<br />
Die Lösung sind meist Arrays, aber um genaueres sagen zu können, müsstest du etwas Code zeigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062792</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Fri, 13 May 2011 14:17:22 GMT</pubDate></item><item><title><![CDATA[Reply to ODER operator&amp;quot;||&amp;quot; in verkürzter form anwenden on Fri, 13 May 2011 14:19:49 GMT]]></title><description><![CDATA[<p>aber wenn ich jetzt prüfen will, ob z.B. a einen von d,e oder f entspricht,<br />
muss ich da gleich</p>
<p>if((a==d)or(a==e)or(a==f))<br />
schreiben?</p>
<p>P.S.: Ja, stimmt, ich mach nen haufen if bedingungen für Sudoku.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062794</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 13 May 2011 14:19:49 GMT</pubDate></item><item><title><![CDATA[Reply to ODER operator&amp;quot;||&amp;quot; in verkürzter form anwenden on Fri, 13 May 2011 14:26:35 GMT]]></title><description><![CDATA[<p>Was du allerdings machen könntest, ist Folgendes:<br />
wenn du eine bestimmte längere Überprüfung in deinem Code häufiger verwenden möchtest (musst), dann kannst du eine inline bool-Funktion basteln, die den Vergleich macht und dir das Ergebnis zurückgibt. Als Übergabeparameter übergibst du die zu überprüfenden Variablen. So etwas dürfte sellten vorkommen, aber trotzdem:</p>
<pre><code class="language-cpp">...
    if (check(a, b, c))
        //do smth.
...

inline bool check(int a, int b, int c)
{
    if ((a &gt; 0 &amp;&amp; a != b &amp;&amp; a != c) || a+b &lt;= 1)
        return true;
    else
        return false;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2062802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062802</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Fri, 13 May 2011 14:26:35 GMT</pubDate></item><item><title><![CDATA[Reply to ODER operator&amp;quot;||&amp;quot; in verkürzter form anwenden on Fri, 13 May 2011 14:31:40 GMT]]></title><description><![CDATA[<p>und wozu muss da inline rein ...?<br />
sorry, bin noch nich so erfahren...<br />
ist inline nicht für eine schnellere ausführung der funktion?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062805</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 13 May 2011 14:31:40 GMT</pubDate></item><item><title><![CDATA[Reply to ODER operator&amp;quot;||&amp;quot; in verkürzter form anwenden on Fri, 13 May 2011 14:35:07 GMT]]></title><description><![CDATA[<p>[Rewind] schrieb:</p>
<blockquote>
<pre><code class="language-cpp">inline bool check(int a, int b, int c)
{
    if ((a &gt; 0 &amp;&amp; a != b &amp;&amp; a != c) || a+b &lt;= 1)
        return true;
    else
        return false;
}
</code></pre>
</blockquote>
<p>Warum nicht</p>
<pre><code class="language-cpp">return a &gt; 0 &amp;&amp; a != b &amp;&amp; a != c || a + b &lt;= 1;
</code></pre>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062809</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Fri, 13 May 2011 14:35:07 GMT</pubDate></item><item><title><![CDATA[Reply to ODER operator&amp;quot;||&amp;quot; in verkürzter form anwenden on Fri, 13 May 2011 14:36:00 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>und wozu muss da inline rein ...?</p>
</blockquote>
<p>Muss nicht. Das ist ein optionaler Hinweis für Compiler, der heutzutage aber mehr oder weniger ignoriert wird<sup>*</sup>.</p>
<blockquote>
<p>ist inline nicht für eine schnellere ausführung der funktion?</p>
</blockquote>
<p>Möchtest du es denn nicht schnell haben?</p>
<p><sup>*</sup>: Inline hat noch eine andere Funktion, aber die spielt hier keine Rolle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062812</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062812</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 13 May 2011 14:36:00 GMT</pubDate></item><item><title><![CDATA[Reply to ODER operator&amp;quot;||&amp;quot; in verkürzter form anwenden on Fri, 13 May 2011 15:07:48 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/904">@Bashar</a>: wie auch immer. Das war nicht der Kernpunkt meines Vorschlags.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062837</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Fri, 13 May 2011 15:07:48 GMT</pubDate></item><item><title><![CDATA[Reply to ODER operator&amp;quot;||&amp;quot; in verkürzter form anwenden on Fri, 13 May 2011 15:35:50 GMT]]></title><description><![CDATA[<p>[Rewind] schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/904">@Bashar</a>: wie auch immer. Das war nicht der Kernpunkt meines Vorschlags.</p>
</blockquote>
<p>Der Code ist aber unnötig umständlich, daher halte ich einen Hinweis durchaus für angebracht. An der Semantik ändert sich ja nichts, die ist auch nicht kritisiert worden.</p>
<p>Hacker schrieb:</p>
<blockquote>
<p>und wozu muss da inline rein ...?</p>
</blockquote>
<p>Ich würds weglassen, das brauchst du eigentlich nicht. Es sei denn, du willst Funktionen im Header definieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062868</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062868</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 13 May 2011 15:35:50 GMT</pubDate></item><item><title><![CDATA[Reply to ODER operator&amp;quot;||&amp;quot; in verkürzter form anwenden on Fri, 13 May 2011 15:47:21 GMT]]></title><description><![CDATA[<p>Hallo Hacker,</p>
<p>den Hinweis von Athar bzgl. Arrays solltest du Ernst nehmen, ansonsten programmierst du dir nämlich einen Wolf... (s. z.B. <a href="http://www.c-plusplus.net/forum/232907" rel="nofollow">http://www.c-plusplus.net/forum/232907</a>)</p>
<p>Wenn du nicht weißt, wie man bei Sudoku vernünftig Arrays einsetzt, dann such einfach mal in diesem Sub-Forum nach &quot;Sudoku&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062881</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Fri, 13 May 2011 15:47:21 GMT</pubDate></item><item><title><![CDATA[Reply to ODER operator&amp;quot;||&amp;quot; in verkürzter form anwenden on Fri, 13 May 2011 16:03:52 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Der Code ist aber unnötig umständlich, daher halte ich einen Hinweis durchaus für angebracht.</p>
</blockquote>
<p>Den Code kann doch unmöglich als unnötig umständlich bezeichnen. Für einen Unerfahrenen ist es dadurch sogar leichter/schneller zu erkennen, was der Code macht. Daher ist das in diesem konkreten Fall belanglos.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062900</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Fri, 13 May 2011 16:03:52 GMT</pubDate></item><item><title><![CDATA[Reply to ODER operator&amp;quot;||&amp;quot; in verkürzter form anwenden on Fri, 13 May 2011 16:17:55 GMT]]></title><description><![CDATA[<p>Der Code ist höchstens einfacher zu erkennen, solange man boolsche Ausdrücke noch nicht versteht. Von der Logik her macht man einen unnötigen Schritt. Statt &quot;gib x zurück&quot; hast du &quot;wenn x true ist, gib true zurück, andernfalls gib false zurück&quot;.</p>
<p>Du schreibst ja auch nicht</p>
<pre><code class="language-cpp">bool b = a &gt; 0 &amp;&amp; a != b &amp;&amp; a != c || a + b &lt;= 1;
if (b)
    return true;
else
    return false;
</code></pre>
<p>Warum sollte das also anders sein, wenn du <code>b</code> direkt einsetzt?</p>
<p>Das andere, was oft unnötig umständlich gelöst wird, ist <code>if (b == true)</code> . Aber so konsistent zu sein und <code>if ((y &gt; 3) == true)</code> zu schreiben, tut merkwürdigerweise niemand.</p>
<p>Daher finde ich es wichtig, dass man gerade Anfängern zeigt, wie sie ihren Code vereinfachen können, ohne dass er weniger übersichtlich ist. Schlussendlich können sie immer noch selbst entscheiden, wie sie ihren Code formulieren, aber wenigstens kennen sie mehrere Möglichkeiten und nicht nur die umständliche.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2062909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2062909</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 13 May 2011 16:17:55 GMT</pubDate></item><item><title><![CDATA[Reply to ODER operator&amp;quot;||&amp;quot; in verkürzter form anwenden on Sat, 14 May 2011 10:52:59 GMT]]></title><description><![CDATA[<p>C++0x:</p>
<pre><code class="language-cpp">template&lt;typename Type&gt; bool is_one_of(Type elem, Type first_comp_value, Type... other_comp_values);

template&lt;typename Type&gt; bool is_one_of(Type elem, Type last_comp_value)
{
    return elem == last_element;
}

template&lt;typename Type&gt; bool is_one_of(Type elem, Type first_comp_value, Type... other_comp_values)
{
    return (elem == first_comp_value) || is_one_of(elem, other_comp_values...);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2063219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2063219</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Sat, 14 May 2011 10:52:59 GMT</pubDate></item></channel></rss>