<?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[True-bedingung in for-schleife - wie ist die Auswertung?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine frage die mir einen tag lang einen Bug verursacht hat und ihc jetzt dahintergekommen bin.</p>
<p>was ich möchte: Ich habe eine for-schleife und will 2 Bedingungen überprüfen lassen. Falls eine false wird, soll die schleife abgebrochen werden. Leider scheint die zweite bedingunge nicht ausgewertet zu werden - kann das sein?</p>
<p>folgendes geht nicht:</p>
<pre><code class="language-cpp">for (int el = 0; 
(el &lt; maxnew &amp;&amp; (el &lt; len); 
el++)
</code></pre>
<p>folgendes geht:</p>
<pre><code class="language-cpp">for (int el = 0; el &lt; maxnew;el++)
       if (el &lt; len) break;
</code></pre>
<p>Kann das sein oder liegt mein bug wo anders? Wie ist denn die Auswertung in for-schleifen bezüglich mehrerer Bedingungen?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/192519/true-bedingung-in-for-schleife-wie-ist-die-auswertung</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 11:22:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/192519.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 15 Sep 2007 13:25:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to True-bedingung in for-schleife - wie ist die Auswertung? on Sat, 15 Sep 2007 13:25:31 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine frage die mir einen tag lang einen Bug verursacht hat und ihc jetzt dahintergekommen bin.</p>
<p>was ich möchte: Ich habe eine for-schleife und will 2 Bedingungen überprüfen lassen. Falls eine false wird, soll die schleife abgebrochen werden. Leider scheint die zweite bedingunge nicht ausgewertet zu werden - kann das sein?</p>
<p>folgendes geht nicht:</p>
<pre><code class="language-cpp">for (int el = 0; 
(el &lt; maxnew &amp;&amp; (el &lt; len); 
el++)
</code></pre>
<p>folgendes geht:</p>
<pre><code class="language-cpp">for (int el = 0; el &lt; maxnew;el++)
       if (el &lt; len) break;
</code></pre>
<p>Kann das sein oder liegt mein bug wo anders? Wie ist denn die Auswertung in for-schleifen bezüglich mehrerer Bedingungen?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1365868</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1365868</guid><dc:creator><![CDATA[gast_xy]]></dc:creator><pubDate>Sat, 15 Sep 2007 13:25:31 GMT</pubDate></item><item><title><![CDATA[Reply to True-bedingung in for-schleife - wie ist die Auswertung? on Sat, 15 Sep 2007 13:31:14 GMT]]></title><description><![CDATA[<p>gast_xy schrieb:</p>
<blockquote>
<pre><code class="language-cpp">for (int el = 0; 
(el &lt; maxnew &amp;&amp; (el &lt; len); 
el++)
</code></pre>
</blockquote>
<p>Hier fehlt eine schließende Klammer.</p>
<p>gast_xy schrieb:</p>
<blockquote>
<p>Wie ist denn die Auswertung in for-schleifen bezüglich mehrerer Bedingungen?</p>
</blockquote>
<p>Nicht anders als anderswo. &quot;geht nicht&quot; ist keine Fehlerbeschreibung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1365869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1365869</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 15 Sep 2007 13:31:14 GMT</pubDate></item><item><title><![CDATA[Reply to True-bedingung in for-schleife - wie ist die Auswertung? on Sat, 15 Sep 2007 13:38:29 GMT]]></title><description><![CDATA[<p>gast_xy schrieb:</p>
<blockquote>
<p>folgendes geht nicht:</p>
<pre><code class="language-cpp">for (int el = 0; 
(el &lt; maxnew &amp;&amp; (el &lt; len); 
el++)
</code></pre>
<p>folgendes geht:</p>
<pre><code class="language-cpp">for (int el = 0; el &lt; maxnew;el++)
       if (el &lt; len) break;
</code></pre>
</blockquote>
<p>Im ersten Fall läuft die Schleife weiter, wenn e1 &lt; len ist, im zweiten bricht sie dann ab. Was wundert dich daran? Dass die for-Schleife läuft, solange die Bedingung erfüllt ist, scheinst du ja zu wissen, sonst hättest du das mit e1 &lt; maxnew auch nicht hingekriegt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1365875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1365875</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Sat, 15 Sep 2007 13:38:29 GMT</pubDate></item><item><title><![CDATA[Reply to True-bedingung in for-schleife - wie ist die Auswertung? on Sat, 15 Sep 2007 13:44:15 GMT]]></title><description><![CDATA[<p>ja die Klammer ist schon dort, habe sie hier halt im post ausversehen rausgenommen.</p>
<p>Also ich wollte nur wissen ob beide bedingungen überprüft werden und ausgewertet werden und nicht nur die erste. also ob el &lt; maxnew,<br />
also es müssen doch beide bedingungen erfüllt sein damit die schleife weiterläuft - ist das so auch der fall oder wird nur el &lt; maxnew ausgewertet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1365878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1365878</guid><dc:creator><![CDATA[gast_xy]]></dc:creator><pubDate>Sat, 15 Sep 2007 13:44:15 GMT</pubDate></item><item><title><![CDATA[Reply to True-bedingung in for-schleife - wie ist die Auswertung? on Sat, 15 Sep 2007 13:53:17 GMT]]></title><description><![CDATA[<p>Beim &amp;&amp; und beim || Operator gibt es die Besonderheit, dass die zweite Bedingung nur ausgewertet wird, wenn durch die erste Bedingung das Ergebnis nicht schon feststeht. Denn false &amp;&amp; X ist immer false, und true || X ist immer true. Soviel dazu, das ist hier aber nach deiner Beschreibung nicht das Problem. Versuchs mal mit einer anständigen Fehlerbeschreibung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1365883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1365883</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Sat, 15 Sep 2007 13:53:17 GMT</pubDate></item><item><title><![CDATA[Reply to True-bedingung in for-schleife - wie ist die Auswertung? on Sat, 15 Sep 2007 15:37:12 GMT]]></title><description><![CDATA[<p>@gast_xy</p>
<p>Selbstverständlich wird der gesamte Ausdruck ausgewertet. Allerdings mit den Einschränkungen die Bashar erwähnt.</p>
<p>Deine beiden Code-Schnipsel stellen schlicht nicht dieselbe Programm-Logik dar.</p>
<p>Damit die for-Schleife mit dem &amp;&amp; im Falle von (e1 &lt; len) auch abbricht, müsste der Ausdruck so lauten:</p>
<p>((el &lt; maxnew) &amp;&amp; (el &gt;= len))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1365951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1365951</guid><dc:creator><![CDATA[vic1986]]></dc:creator><pubDate>Sat, 15 Sep 2007 15:37:12 GMT</pubDate></item><item><title><![CDATA[Reply to True-bedingung in for-schleife - wie ist die Auswertung? on Sun, 16 Sep 2007 11:46:19 GMT]]></title><description><![CDATA[<p>Das ist bei Logikoperatoren einfach so.<br />
Warum sollte man einen Ausdruck komplett auswerten wenn er nie mehr wahr werden kann?</p>
<p>UND: Abbruch sobald EINE Bedingung unwahr wird - Rückgabe ist dann false (0). Da ja ALLE wahr sein müssen um true (1) liefern zu können.</p>
<p>ODER: Abbruch sobald nur EINE Bedingung wahr ist. Rückgabe ist true (1). Der Rest der ODER interessiert nicht, es ist doch schon wahr.</p>
<p>Das ist auch das Problem bei langen Bedingungen die mit verschiedenen Operatoren arbeiten, zu erkennen wo der Abbruch statt findet.</p>
<pre><code>a &lt; b &amp;&amp; a &gt; c || b &gt; c &amp;&amp; a == b &amp;&amp; b == c || a == c || x != c
</code></pre>
<p>Wie übersichtlich. Auch wenn es Regeln dafür gibt, ätzend.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1366270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1366270</guid><dc:creator><![CDATA[kerzenhalter]]></dc:creator><pubDate>Sun, 16 Sep 2007 11:46:19 GMT</pubDate></item></channel></rss>