<?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[Unverständliche for-Schleife]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin gerade dabei c++ zu erlernen und habe bisher alles sehr gut verstanden (Ich lerne von einem Buch &quot;c++ in 21 Tagen). Nun bin ich beim Kapitel 7 angekommen &quot;Schleifen&quot;. Die while Schleifen waren sehr gut beschrieben und verständlich ebenfalls die anfänglichen Beispiele der for-Schleifen. Nun kommt aber ein Beispiel einer For-Schleife das ich nicht verstehe. Und zwar:</p>
<pre><code>#include &lt;iostream.h&gt;

  int fib(int position);
  int main()
  {
      int answer, position;
      cout &lt;&lt; &quot;Welche Position? &quot;;
      cin &gt;&gt; position;
      cout &lt;&lt; &quot;\n&quot;;

      answer = fib(position);
      cout &lt;&lt; answer &lt;&lt; &quot; lautet der Wert der &quot;;
      cout &lt;&lt; position &lt;&lt; &quot;ten Fibonacci-Zahl.\n&quot;;
     return 0;
  }

  int fib(int n)
  {
      int minusTwo=1, minusOne=1, answer=2;

      if (n &lt; 3)
          return 1;

      for (n -= 3; n; n--)
      {
          minusTwo = minusOne;
          minusOne = answer;
          answer = minusOne + minusTwo;
      }

      return answer;
 }
</code></pre>
<p>ich verstehe soweit alles bis zum Schritt &quot;answer = fib(position);&quot;. Unten wird dese ja Definiert nur wie rechnet die Funktion die Antwort aus sprich &quot;answer&quot;. Wieso dekrementiert er n mit 3 und in der for-Schleife selber ergibt &quot;minusOne + minusTwo&quot; doch immer 3. Bitte um eine Erklärung für &quot;Dumme&quot;.</p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/284373/unverständliche-for-schleife</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 02:27:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/284373.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 31 Mar 2011 08:13:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Unverständliche for-Schleife on Thu, 31 Mar 2011 08:13:35 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin gerade dabei c++ zu erlernen und habe bisher alles sehr gut verstanden (Ich lerne von einem Buch &quot;c++ in 21 Tagen). Nun bin ich beim Kapitel 7 angekommen &quot;Schleifen&quot;. Die while Schleifen waren sehr gut beschrieben und verständlich ebenfalls die anfänglichen Beispiele der for-Schleifen. Nun kommt aber ein Beispiel einer For-Schleife das ich nicht verstehe. Und zwar:</p>
<pre><code>#include &lt;iostream.h&gt;

  int fib(int position);
  int main()
  {
      int answer, position;
      cout &lt;&lt; &quot;Welche Position? &quot;;
      cin &gt;&gt; position;
      cout &lt;&lt; &quot;\n&quot;;

      answer = fib(position);
      cout &lt;&lt; answer &lt;&lt; &quot; lautet der Wert der &quot;;
      cout &lt;&lt; position &lt;&lt; &quot;ten Fibonacci-Zahl.\n&quot;;
     return 0;
  }

  int fib(int n)
  {
      int minusTwo=1, minusOne=1, answer=2;

      if (n &lt; 3)
          return 1;

      for (n -= 3; n; n--)
      {
          minusTwo = minusOne;
          minusOne = answer;
          answer = minusOne + minusTwo;
      }

      return answer;
 }
</code></pre>
<p>ich verstehe soweit alles bis zum Schritt &quot;answer = fib(position);&quot;. Unten wird dese ja Definiert nur wie rechnet die Funktion die Antwort aus sprich &quot;answer&quot;. Wieso dekrementiert er n mit 3 und in der for-Schleife selber ergibt &quot;minusOne + minusTwo&quot; doch immer 3. Bitte um eine Erklärung für &quot;Dumme&quot;.</p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2042628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2042628</guid><dc:creator><![CDATA[lakam]]></dc:creator><pubDate>Thu, 31 Mar 2011 08:13:35 GMT</pubDate></item><item><title><![CDATA[Reply to Unverständliche for-Schleife on Thu, 31 Mar 2011 08:19:59 GMT]]></title><description><![CDATA[<p>Das ist kein Problem der For-Schleife.<br />
Du solltest dich mal nach der iterativen Implementierung des Fibonacci-Algorithmus umschauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2042633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2042633</guid><dc:creator><![CDATA[Dasd]]></dc:creator><pubDate>Thu, 31 Mar 2011 08:19:59 GMT</pubDate></item><item><title><![CDATA[Reply to Unverständliche for-Schleife on Thu, 31 Mar 2011 08:21:02 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Also erstmal ist das neuerdings (seit fast nem Jahrzehnet) iostream statt iostream.h. Dafür benötigst Du noch using namespace std; bzw. std:: vor allem, was du durch iostream nutzt.</p>
<p>und minusOne + minusTwo ist nicht immer 3, nur beim ersten Mal. Im zweiten Schleifendurchlauf sind ja minusTwo, minusOne und answer verändert, sodass die gleiche Berechnung zu einem anderen Ergebnis führt.</p>
<p>Die for-Schleife funktioniert so:<br />
- Am Anfang wird n um 3 dekrementiert, dies geschieht nur ein einziges Mal<br />
- Die Bedingung, dass die Schleife weiterläuft, ist n; das entspricht &quot;n != 0&quot;<br />
- Nach jedem Schleifendurchlauf wird n um 1 dekrementiert</p>
<p>Die Schleife wird also für n=3 0 Mal durchlaufen (da zuerst n -= 3 geschieht und daraufhin n ja 0 ist und das durch die Überprüfung falsch ist). Für n=4 wird sie einmal durchlaufen, da nach Initialsetzung von n = n-3 n erstmal 1 ist und einmal durchlaufen wird, danach dekrementiert und, da das n dann 0 ist, wieder rausläuft. Für n = 4 dann zwei Durchläufe usw. usf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2042634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2042634</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Thu, 31 Mar 2011 08:21:02 GMT</pubDate></item><item><title><![CDATA[Reply to Unverständliche for-Schleife on Thu, 31 Mar 2011 08:38:45 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22559">@Eisflamme</a></p>
<p>Stimmt ist ja logisch das sich die Zahlen verändern, ich hoffe ich bin nicht der dümmste (-;.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2042639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2042639</guid><dc:creator><![CDATA[lakam]]></dc:creator><pubDate>Thu, 31 Mar 2011 08:38:45 GMT</pubDate></item><item><title><![CDATA[Reply to Unverständliche for-Schleife on Thu, 31 Mar 2011 09:37:52 GMT]]></title><description><![CDATA[<p>Das hat nichts mit Dummheit sondern fehlender Gewohnheit an die Notation zu tun imo.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2042682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2042682</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Thu, 31 Mar 2011 09:37:52 GMT</pubDate></item></channel></rss>