<?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[C++ do while schleife Erklärung für Abbruch]]></title><description><![CDATA[<p>Hallo alle zusammen,</p>
<p>wir haben folgenden code geschrieben, der auch läuft:</p>
<p>----------------------------------------------------------------<br />
#include &lt;iostream&gt;</p>
<p>using namespace std;</p>
<p>int main ()<br />
{<br />
double laenge;<br />
double breite;<br />
double hoehe;</p>
<p>cout &lt;&lt; &quot;Wir berechnen das Volumen eines Schukartons. Bitte gebe dazu folgende Daten ein: \n&quot;;</p>
<p>do{</p>
<p>cout &lt;&lt; &quot;LÃ¤nge: &quot;;<br />
cin &gt;&gt; laenge;<br />
}<br />
while ((laenge &lt;= 21) || (laenge &gt;= 29));</p>
<p>/*Folgender Befehl soll beim zweiten Durchlauf der Schleife mit ausgegeben werden<br />
cout &lt;&lt; &quot;Länge nicht im Normbereich, bitte erneut eingeben: \n&quot;;<br />
*/</p>
<p>do{<br />
cout &lt;&lt; &quot;Breite: &quot;;<br />
cin &gt;&gt; breite;<br />
}<br />
while ((breite&lt;= 17) || (breite &gt;= 23));</p>
<p>do{<br />
cout &lt;&lt; &quot;HÃ¶he: &quot;;<br />
cin &gt;&gt; hoehe;<br />
}<br />
while ((hoehe &lt;= 10) || (hoehe &gt;= 13));</p>
<p>double volumen = laenge * breite + hoehe;<br />
cout &lt;&lt; &quot;Das Volumen betrÃ¤gt: &quot; &lt;&lt; volumen &lt;&lt; &quot;cc&quot; &lt;&lt; endl;</p>
<p>cout &lt;&lt; &quot;Umgerechnet sind das: &quot;;</p>
<p>double liter = volumen / 1000;<br />
cout &lt;&lt; liter &lt;&lt; &quot; Liter&quot;&lt;&lt; endl;</p>
<p>return 0;<br />
}<br />
---------------------------------------------------------------------</p>
<p>Unsere Frage bezieht sich auf die do-while Schleifen:<br />
Wenn bei der ersten Schleife das Ergebnis false ist, läuft die Schleife ja noch einmal durch. Für einen user der das Programm nicht geschrieben hat ist jetzt aber nicht klar, warum wieder die Eingabe Länge gefordert wird.<br />
Wir würden also gerne beim zweiten Durchlauf der Schleife zusätzlich einen cout-Befehl mit einfügen.<br />
Wie ist das möglich?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/335180/c-do-while-schleife-erklärung-für-abbruch</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 01:15:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/335180.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 04 Nov 2015 10:41:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ do while schleife Erklärung für Abbruch on Wed, 04 Nov 2015 10:41:29 GMT]]></title><description><![CDATA[<p>Hallo alle zusammen,</p>
<p>wir haben folgenden code geschrieben, der auch läuft:</p>
<p>----------------------------------------------------------------<br />
#include &lt;iostream&gt;</p>
<p>using namespace std;</p>
<p>int main ()<br />
{<br />
double laenge;<br />
double breite;<br />
double hoehe;</p>
<p>cout &lt;&lt; &quot;Wir berechnen das Volumen eines Schukartons. Bitte gebe dazu folgende Daten ein: \n&quot;;</p>
<p>do{</p>
<p>cout &lt;&lt; &quot;LÃ¤nge: &quot;;<br />
cin &gt;&gt; laenge;<br />
}<br />
while ((laenge &lt;= 21) || (laenge &gt;= 29));</p>
<p>/*Folgender Befehl soll beim zweiten Durchlauf der Schleife mit ausgegeben werden<br />
cout &lt;&lt; &quot;Länge nicht im Normbereich, bitte erneut eingeben: \n&quot;;<br />
*/</p>
<p>do{<br />
cout &lt;&lt; &quot;Breite: &quot;;<br />
cin &gt;&gt; breite;<br />
}<br />
while ((breite&lt;= 17) || (breite &gt;= 23));</p>
<p>do{<br />
cout &lt;&lt; &quot;HÃ¶he: &quot;;<br />
cin &gt;&gt; hoehe;<br />
}<br />
while ((hoehe &lt;= 10) || (hoehe &gt;= 13));</p>
<p>double volumen = laenge * breite + hoehe;<br />
cout &lt;&lt; &quot;Das Volumen betrÃ¤gt: &quot; &lt;&lt; volumen &lt;&lt; &quot;cc&quot; &lt;&lt; endl;</p>
<p>cout &lt;&lt; &quot;Umgerechnet sind das: &quot;;</p>
<p>double liter = volumen / 1000;<br />
cout &lt;&lt; liter &lt;&lt; &quot; Liter&quot;&lt;&lt; endl;</p>
<p>return 0;<br />
}<br />
---------------------------------------------------------------------</p>
<p>Unsere Frage bezieht sich auf die do-while Schleifen:<br />
Wenn bei der ersten Schleife das Ergebnis false ist, läuft die Schleife ja noch einmal durch. Für einen user der das Programm nicht geschrieben hat ist jetzt aber nicht klar, warum wieder die Eingabe Länge gefordert wird.<br />
Wir würden also gerne beim zweiten Durchlauf der Schleife zusätzlich einen cout-Befehl mit einfügen.<br />
Wie ist das möglich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2474089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2474089</guid><dc:creator><![CDATA[Kirsten und Sandra]]></dc:creator><pubDate>Wed, 04 Nov 2015 10:41:29 GMT</pubDate></item><item><title><![CDATA[Reply to C++ do while schleife Erklärung für Abbruch on Wed, 04 Nov 2015 10:54:33 GMT]]></title><description><![CDATA[<pre><code>int laenge;
cout &lt;&lt; &quot;Länge&quot;;
cin &gt;&gt; laenge;
while(! (/* euer erlaubter Intervall */) ) 
{
    cout &lt;&lt;&quot;Nochmal:&quot; ;
    cin &gt;&gt; laenge;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2474092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2474092</guid><dc:creator><![CDATA[Hlymur]]></dc:creator><pubDate>Wed, 04 Nov 2015 10:54:33 GMT</pubDate></item><item><title><![CDATA[Reply to C++ do while schleife Erklärung für Abbruch on Wed, 04 Nov 2015 12:00:35 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>das klappt für die erste Schleife <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="🙂"
    /> , aber bei der zweiten muss ich dann einmal einen Wert außerhalb des Intervalls eingeben, damit er dann bei Eingabe innerhalb des Wertes den nächsten Wert abfragt.</p>
<p>Was muss hier noch beachtet werden<br />
einen continue Befehl kann ich ja nicht innerhalb der Schleife geben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2474097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2474097</guid><dc:creator><![CDATA[Kirsten und Sandra]]></dc:creator><pubDate>Wed, 04 Nov 2015 12:00:35 GMT</pubDate></item><item><title><![CDATA[Reply to C++ do while schleife Erklärung für Abbruch on Wed, 04 Nov 2015 12:34:26 GMT]]></title><description><![CDATA[<p>Erst mal vielen Dank für die schnelle Antwort.<br />
Mir ist aber noch aufgefallen, dass die Schleife nun nur einmal wiederholt wird. Gibt man also zweimal einen nicht gültigen Wert ein, wird trotzdem der nächste Wert abgefragt.<br />
Kann man diese Schleife auch so oft durchlaufen lassen bis ein zulässiger Wert eingegeben wurde?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2474103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2474103</guid><dc:creator><![CDATA[Kirsten und Sandra]]></dc:creator><pubDate>Wed, 04 Nov 2015 12:34:26 GMT</pubDate></item><item><title><![CDATA[Reply to C++ do while schleife Erklärung für Abbruch on Wed, 04 Nov 2015 12:39:02 GMT]]></title><description><![CDATA[<p>Auch wenn man beim ersten mal einen richtigen Wert eingibt, fragt er erneut nach der Länge ....</p>
<p>es sieht jetzt folgendermaßen aus bei uns:<br />
------------------------------------------------<br />
do{</p>
<p>cout &lt;&lt; &quot;LÃ¤nge: &quot;;<br />
cin &gt;&gt; laenge;<br />
}<br />
while (!(laenge &lt;= 21) || (laenge &gt;= 29));<br />
{cout &lt;&lt; &quot;Länge nicht im Normbereich, bitte erneut eingeben: \n&quot;;<br />
cin &gt;&gt; laenge;}<br />
-----------------------------------------------</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2474104</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2474104</guid><dc:creator><![CDATA[Kirsten und Sandra]]></dc:creator><pubDate>Wed, 04 Nov 2015 12:39:02 GMT</pubDate></item><item><title><![CDATA[Reply to C++ do while schleife Erklärung für Abbruch on Wed, 04 Nov 2015 12:47:54 GMT]]></title><description><![CDATA[<p>Eigentlich hättest du es mit Hlymur's Code hinbekommen sollen.</p>
<p>Ein Vorschlag meinerseits:</p>
<pre><code>bool valid = true;
double laenge;

do
{
   if(!valid)
      cout &lt;&lt; &quot;Länge nicht im Normbereich, bitte erneut eingeben:&quot; &lt;&lt; endl;
   else
      cout &lt;&lt; &quot;Länge:&quot; &lt;&lt; endl;

   cin &gt;&gt; laenge;

   valid = laenge &gt; 21 &amp;&amp; laenge &lt; 29;
}while(!valid);
</code></pre>
<p>Das wäre jetzt eine Straight-Forward Lösung wie ich sie mir &quot;einfach&quot; vorstellen würde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2474106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2474106</guid><dc:creator><![CDATA[inflames2k]]></dc:creator><pubDate>Wed, 04 Nov 2015 12:47:54 GMT</pubDate></item><item><title><![CDATA[Reply to C++ do while schleife Erklärung für Abbruch on Wed, 04 Nov 2015 13:05:01 GMT]]></title><description><![CDATA[<p>Könnt ihr euch den Krampf mit <code>do-while</code> nicht sparen und das einfach so machen:</p>
<pre><code>cout &lt;&lt; &quot;Laenge: &quot;;
laenge_lesen:
    cin &gt;&gt; laenge;

    if (laenge &lt;= 21 || laenge &gt;= 29)
    {
        cout &lt;&lt; &quot;Laenge nicht im Normbereich, bitte erneut eingeben: \n&quot;;
        goto laenge_lesen;
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2474111</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2474111</guid><dc:creator><![CDATA[DM 4000]]></dc:creator><pubDate>Wed, 04 Nov 2015 13:05:01 GMT</pubDate></item><item><title><![CDATA[Reply to C++ do while schleife Erklärung für Abbruch on Wed, 04 Nov 2015 13:13:20 GMT]]></title><description><![CDATA[<p>DM 4000 schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>Das war hoffentlich nicht erst gemeint!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2474114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2474114</guid><dc:creator><![CDATA[inflames2k]]></dc:creator><pubDate>Wed, 04 Nov 2015 13:13:20 GMT</pubDate></item><item><title><![CDATA[Reply to C++ do while schleife Erklärung für Abbruch on Wed, 04 Nov 2015 13:17:29 GMT]]></title><description><![CDATA[<p>inflames2k schrieb:</p>
<blockquote>
<p>DM 4000 schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>Das war hoffentlich nicht erst gemeint!</p>
</blockquote>
<p>Wieso? Hat sogar Vorteile gegenüber den anderen Lösungen hier, weil keine code duplication und keine zusätzlichen Variablen. Einfach nachzuvollziehen ist es obendrein auch noch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2474116</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2474116</guid><dc:creator><![CDATA[DM 4000]]></dc:creator><pubDate>Wed, 04 Nov 2015 13:17:29 GMT</pubDate></item><item><title><![CDATA[Reply to C++ do while schleife Erklärung für Abbruch on Wed, 04 Nov 2015 13:20:16 GMT]]></title><description><![CDATA[<p>Hallo inflames2k,</p>
<p>Deine Lösung haben wir gerade getestet und sie funktioniert wunderbar.<br />
Und es war eigentlich mal wieder viel einfacher als man selbst erst dachte.</p>
<p>Vielen Dank Euch allen für die schnellen Antworten! <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2474118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2474118</guid><dc:creator><![CDATA[Kírsten und Sandra]]></dc:creator><pubDate>Wed, 04 Nov 2015 13:20:16 GMT</pubDate></item><item><title><![CDATA[Reply to C++ do while schleife Erklärung für Abbruch on Wed, 04 Nov 2015 13:26:06 GMT]]></title><description><![CDATA[<p>Komisch, ich finde meine Schleife nicht schwerer zu verstehen als dein Goto-Gedöns.</p>
<p>Sollen sie jetzt 4 mal goto verwenden? - Wenn du das wirklich meinst wünsche ich den beiden später viel erfolg.</p>
<p>@Kirsten und Sandra</p>
<p>Für dich / euch eventuell noch ein kleiner Vorschlag. Setzt das Eingabe lesen / die Ausgabe in eine eigene Funktion:</p>
<pre><code>int main()
{
  double laenge = ReadValue(&quot;Länge&quot;, 21, 29);
  double breite = ReadValue(&quot;Breite&quot;, 17, 23);

  //...
  return 0;
}

double ReadValue(std::string valueName, double min, double max)
{
   bool valid = true;
   double value;

   do
   {
      if(!valid)
         cout &lt;&lt; valueName &lt;&lt; &quot; nicht im Normbereich, bitte erneut eingeben:&quot; &lt;&lt; endl;
      else
      cout &lt;&lt; valueName &lt;&lt; &quot;:&quot; &lt;&lt; endl;

      cin &gt;&gt; value;

      valid = value &gt; min &amp;&amp; value&lt; max;
   }while(!valid);
}
</code></pre>
<p>Der Code ist allerdings ungetestet und bedarf gegebenenfalls Anpassungen damit er läuft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2474120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2474120</guid><dc:creator><![CDATA[inflames2k]]></dc:creator><pubDate>Wed, 04 Nov 2015 13:26:06 GMT</pubDate></item><item><title><![CDATA[Reply to C++ do while schleife Erklärung für Abbruch on Wed, 04 Nov 2015 13:32:26 GMT]]></title><description><![CDATA[<p>Wir sind zur Zeit noch ganz am Anfang bei C++. Somit war die erste Lösung von inflames2k für uns tatsächlich am einfachsten zu verstehen. Aber auch die anderen Lösungen werden wir uns noch mal genauer anschauen, erst recht wenn wir die entsprechenden Befehle / Variablen gelernt haben. Wir kommen dann bestimmt gerne noch mal bei Fragen auf Euch zurück. <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>
<p>Vielen Dank noch mal für die viele Unterstützung!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2474122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2474122</guid><dc:creator><![CDATA[Kirsten und Sandra]]></dc:creator><pubDate>Wed, 04 Nov 2015 13:32:26 GMT</pubDate></item><item><title><![CDATA[Reply to C++ do while schleife Erklärung für Abbruch on Wed, 04 Nov 2015 13:38:07 GMT]]></title><description><![CDATA[<p>inflames2k schrieb:</p>
<blockquote>
<p>Komisch, ich finde meine Schleife nicht schwerer zu verstehen als dein Goto-Gedöns.</p>
</blockquote>
<p>D.h. die goto-Variante ist mindestens gleich gut und, wenn man bedenkt, dass eigener Code in der Regel sowieso einfacher zu verstehen ist, potentiell besser.</p>
<blockquote>
<p>Sollen sie jetzt 4 mal goto verwenden?</p>
</blockquote>
<p>Oder halt 4 Schleifen. Oder wie du selbst vorgeschlagen hast, einfach in eine extra Funktion auslagern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2474124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2474124</guid><dc:creator><![CDATA[DM 4000]]></dc:creator><pubDate>Wed, 04 Nov 2015 13:38:07 GMT</pubDate></item><item><title><![CDATA[Reply to C++ do while schleife Erklärung für Abbruch on Thu, 05 Nov 2015 07:34:33 GMT]]></title><description><![CDATA[<p>DM 4000 schrieb:</p>
<blockquote>
<p>inflames2k schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>D.h. die goto-Variante ist mindestens gleich gut und, wenn man bedenkt, dass eigener Code in der Regel sowieso einfacher zu verstehen ist, potentiell besser.</p>
</blockquote>
<p>goto mag in einfachen Sachen gut sein. Es wäre aber nichts dass ich einem Anfänger empfehle. Gründe sind dir hoffentlich klar?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2474238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2474238</guid><dc:creator><![CDATA[inflames2k]]></dc:creator><pubDate>Thu, 05 Nov 2015 07:34:33 GMT</pubDate></item><item><title><![CDATA[Reply to C++ do while schleife Erklärung für Abbruch on Thu, 05 Nov 2015 09:09:08 GMT]]></title><description><![CDATA[<p>Ich übernehme mal die Rolle von Wutz...</p>
<p>Goto benutzen nur deppen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2474252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2474252</guid><dc:creator><![CDATA[snwFlake]]></dc:creator><pubDate>Thu, 05 Nov 2015 09:09:08 GMT</pubDate></item><item><title><![CDATA[Reply to C++ do while schleife Erklärung für Abbruch on Thu, 05 Nov 2015 10:58:19 GMT]]></title><description><![CDATA[<p>snwFlake schrieb:</p>
<blockquote>
<p>Goto benutzen nur deppen.</p>
</blockquote>
<p>Absolute Verallgemeinerungen auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2474268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2474268</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Thu, 05 Nov 2015 10:58:19 GMT</pubDate></item><item><title><![CDATA[Reply to C++ do while schleife Erklärung für Abbruch on Thu, 05 Nov 2015 11:13:25 GMT]]></title><description><![CDATA[<p>snwFlake schrieb:</p>
<blockquote>
<p>Goto benutzen nur deppen.</p>
</blockquote>
<p>Blödsinn.<br />
Hast aber die Rolle von Wutz übernommen, passt also.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2474271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2474271</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Thu, 05 Nov 2015 11:13:25 GMT</pubDate></item></channel></rss>