<?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[break oder verschachtelte ifs]]></title><description><![CDATA[<p>Hiho,</p>
<p>in meinem Programm arbeite ich zur Zeit recht viel mit endlosschelifen (while(true)) und habe mich entschieden gehabt, einfach, wenn ich sie verlassen will (geschieht an mehreren stellen) per break rauszuhüpfen, anstatt eine bool variable in die kondition zu setzen und jedesmal wenn die schleife vielleicht verlassen werden soll das per if abzufragen, die bool variable auf false zu stellen und den ganzen rest in den elseblock.</p>
<p>also quasi</p>
<pre><code class="language-cpp">while(true){
    ...
    if(Abbruchmöglichkeit 1) break;
    ...
    if(Abbruchmöglichkeit 2) break;
    ...
}
</code></pre>
<p>statt</p>
<pre><code class="language-cpp">bool flag=true;
while(flag){
    ...
    if(Abbruchbedingung 1) flag=false;
    else{
        ...
        if(Abbruchbedingung 2) flag=false;
        else{
            ...
        }
    }
}
</code></pre>
<p>Da nun aber break eigentlich dem so verpönten goto recht ähnlich ist frage ich mich, ob es allgemein als schlechter Programierstil angesehen ist oder ob es so in Ordnung geht? Und wenn es schlechter Programmiercode wäre, würde mann dann echt die verschachtelten if-else nutzen? Oder welche Methode wird angewandt?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/168729/break-oder-verschachtelte-ifs</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 13:57:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/168729.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 27 Dec 2006 11:50:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to break oder verschachtelte ifs on Wed, 27 Dec 2006 11:50:24 GMT]]></title><description><![CDATA[<p>Hiho,</p>
<p>in meinem Programm arbeite ich zur Zeit recht viel mit endlosschelifen (while(true)) und habe mich entschieden gehabt, einfach, wenn ich sie verlassen will (geschieht an mehreren stellen) per break rauszuhüpfen, anstatt eine bool variable in die kondition zu setzen und jedesmal wenn die schleife vielleicht verlassen werden soll das per if abzufragen, die bool variable auf false zu stellen und den ganzen rest in den elseblock.</p>
<p>also quasi</p>
<pre><code class="language-cpp">while(true){
    ...
    if(Abbruchmöglichkeit 1) break;
    ...
    if(Abbruchmöglichkeit 2) break;
    ...
}
</code></pre>
<p>statt</p>
<pre><code class="language-cpp">bool flag=true;
while(flag){
    ...
    if(Abbruchbedingung 1) flag=false;
    else{
        ...
        if(Abbruchbedingung 2) flag=false;
        else{
            ...
        }
    }
}
</code></pre>
<p>Da nun aber break eigentlich dem so verpönten goto recht ähnlich ist frage ich mich, ob es allgemein als schlechter Programierstil angesehen ist oder ob es so in Ordnung geht? Und wenn es schlechter Programmiercode wäre, würde mann dann echt die verschachtelten if-else nutzen? Oder welche Methode wird angewandt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1198374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1198374</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Wed, 27 Dec 2006 11:50:24 GMT</pubDate></item><item><title><![CDATA[Reply to break oder verschachtelte ifs on Wed, 27 Dec 2006 11:55:34 GMT]]></title><description><![CDATA[<p>Machs doch so:</p>
<pre><code class="language-cpp">bool flag=true;
while(flag){
    ...
    if(Abbruchbedingung 1) flag=false;
    else if(Abbruchbedingung 2) flag=false;
    //...
    else flag=true;
}
</code></pre>
<p>Ob das schöner is weis ich ned..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1198378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1198378</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Wed, 27 Dec 2006 11:55:34 GMT</pubDate></item><item><title><![CDATA[Reply to break oder verschachtelte ifs on Wed, 27 Dec 2006 11:57:35 GMT]]></title><description><![CDATA[<p>ich seh darin kein problem</p>
<p>was auch gehen wuerde waehre</p>
<pre><code class="language-cpp">while(true){
    ...
    if(Abbruchmöglichkeit 1 ||
       Abbruchmöglichkeit 2)
        break;
    ...
}
</code></pre>
<p>kommt aber jeweils auf den code an, ich pers find das absolut in ordnung</p>
<p>es wuerde auch gehen</p>
<pre><code class="language-cpp">do{
    ...
}while(!Abbruchmöglichkeit 1 || !Abbruchmöglichkeit 2);
</code></pre>
<p>ist aber ebenfals code bedingt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1198380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1198380</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 27 Dec 2006 11:57:35 GMT</pubDate></item><item><title><![CDATA[Reply to break oder verschachtelte ifs on Wed, 27 Dec 2006 12:17:10 GMT]]></title><description><![CDATA[<p>deine beiden Möglichkeiten gehen in meinem Fall nicht, die Abbruchbedinge sind benutzereingaben (wenn der Benutzer &amp;exit eingibt soll er zur &quot;Hauptkommandozeile&quot; des Programms zurückkehren können. Ergo muss ich die Teile nacheinander abwickeln. (kein or oder else if möglich)</p>
<p>Break zählt also im Gegensatz zu goto nicht zu (allgemen angesehen, bis auf ein paar Ausnahmen) schlechtem Programmierziel sondern wäre hier richtig verwendet, ja?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1198389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1198389</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Wed, 27 Dec 2006 12:17:10 GMT</pubDate></item><item><title><![CDATA[Reply to break oder verschachtelte ifs on Wed, 27 Dec 2006 12:22:14 GMT]]></title><description><![CDATA[<p>Ja, mach ruhig, wenn das Programm so verständlicher ist.<br />
Oder um Volkard zu Zitieren: &quot;Schreiben Sie langweilige Programme!&quot; <a href="http://www.volkard.de/vcppkold/nimmspiel__darf_man_endlosschleifen_benutzen.html#aa" rel="nofollow">Quelle</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1198393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1198393</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Wed, 27 Dec 2006 12:22:14 GMT</pubDate></item><item><title><![CDATA[Reply to break oder verschachtelte ifs on Wed, 27 Dec 2006 15:07:55 GMT]]></title><description><![CDATA[<p>die seite die du da gepostest hast find ich total kaese</p>
<pre><code class="language-cpp">schleife solange keiner gewonnen hat
    mensch zieht
    wenn gewonnen
        ausgabe mensch hat gewonnen
    sonst
        rechner zieht
        wenn gewonnen
            ausgabe rechner hat gewonnen
</code></pre>
<p>find ich wirklich sehr verstaendlich!!<br />
die seite liest sich als wuerde Volkard (wer is das ?) gotos gut heissen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1198526</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1198526</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 27 Dec 2006 15:07:55 GMT</pubDate></item><item><title><![CDATA[Reply to break oder verschachtelte ifs on Wed, 27 Dec 2006 15:18:34 GMT]]></title><description><![CDATA[<p>break und continue sind beides Elemente von Schleifen und haben mit goto erstmal nix gemeinsam.</p>
<p>break sagt einfach nur: Beende diese Schleife.<br />
continue sagt, ok, nächste Runde <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>
<p>Ich würds vergleichen mit dem else einer if-schleife, gehört halt einfach dazu;)</p>
<p>goto hingegen ist ein ganz anderes (und oft diskutiertes) Problem. imho ist goto ein Überbleibsel aus den Anfangstagen von C. In gut 15 Jahren C++ habe ich es noch kein einziges mal gebraucht... Es mag sicher Situationen geben wo ein goto sinnvoll ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1198531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1198531</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 27 Dec 2006 15:18:34 GMT</pubDate></item><item><title><![CDATA[Reply to break oder verschachtelte ifs on Wed, 27 Dec 2006 15:38:03 GMT]]></title><description><![CDATA[<p>Ok, danke an alle.</p>
<p>Mr Evil schrieb:</p>
<blockquote>
<p>die seite die du da gepostest hast find ich total kaese</p>
<pre><code class="language-cpp">schleife solange keiner gewonnen hat
    mensch zieht
    wenn gewonnen
        ausgabe mensch hat gewonnen
    sonst
        rechner zieht
        wenn gewonnen
            ausgabe rechner hat gewonnen
</code></pre>
<p>find ich wirklich sehr verstaendlich!!<br />
die seite liest sich als wuerde Volkard (wer is das ?) gotos gut heissen</p>
</blockquote>
<p>Volkard ist mod in diesem Forum. Ich ahbe auch mit seinem Kurs angefangen und etwas per Email zugemüllt (sry Volkard) Ich bezweifle, dass er ein Verfechter für goto ist. Das wo du da zitierst wird mit ner while schleife und ner if abfrage sehr einfach realisiert. Nix mit goto.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1198541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1198541</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Wed, 27 Dec 2006 15:38:03 GMT</pubDate></item><item><title><![CDATA[Reply to break oder verschachtelte ifs on Wed, 27 Dec 2006 16:46:39 GMT]]></title><description><![CDATA[<p>Mr Evil schrieb:</p>
<blockquote>
<p>wer is das ?</p>
</blockquote>
<p><a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-5.html" rel="nofollow">Der da.</a></p>
<p>Mr Evil schrieb:</p>
<blockquote>
<p>die seite liest sich als wuerde Volkard gotos gut heissen</p>
</blockquote>
<p>Darum geht es nicht. Die Zielsetzung ist, möglichst unkompliziert Programme zu schreiben, da diese verständlicher sind und weniger fehleranfällig. Und wenn goto diesem Zweck dient, dann kann man es auch verwenden. Die ganzen &quot;goto ist böse&quot; Rufe sollen einem eigentlich nur klar machen, dass es nicht gebräuchlich ist, da man andere Konstrukte hat, die besser zum Codefluss passen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1198585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1198585</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Wed, 27 Dec 2006 16:46:39 GMT</pubDate></item><item><title><![CDATA[Reply to break oder verschachtelte ifs on Wed, 27 Dec 2006 18:02:46 GMT]]></title><description><![CDATA[<p>das Problem mit goto ist auch weniger das goto an sich, sondern eine typische denkweise der Progger die vor allem unter Anfängern sehr verbreitet ist: Wenn der Compiler es compiliert, dann muß es ja richtig sein...</p>
<p>Vieles in C++ ist Scope-Basiert. goto aber kann scopes &quot;übespringen&quot;. Folgender Code ist rein syntaktisch daher vollkommen legal (wenn auch total Sinnfrei)</p>
<pre><code class="language-cpp">void testg() {
	for( int i=0; i&lt;10; ++i) {
		int* x = new int;
x_label:
		delete x;
	}

	for( int j=0; j&lt;10; ++j) {
		goto x_label;
	}
}
</code></pre>
<p>Und führt natürlich garantiert zu einem Absturz. Bei den wenigen Zeilen sieht man den Fehler natürlich (hoffentlich) sofort. Aber jetzt stellt euch einfach vor das wären 1000 Zeilen oder mehr...</p>
<p>Ich würde übrigends drauf wetten das 2 von 3 Anfängern bei obigem Code dann das delete asukommentieren würden und dann sagen: Bug gefixed, läuft jetzt ohne Abzustürzen... (ok, wenn ich ehrlich bin denke ich 9 von 10, aber mein Therapeut sagt ich solle nicht so zynisch sein...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1198640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1198640</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 27 Dec 2006 18:02:46 GMT</pubDate></item><item><title><![CDATA[Reply to break oder verschachtelte ifs on Wed, 27 Dec 2006 18:54:37 GMT]]></title><description><![CDATA[<p>gegen break und continue spricht nichts, kann man gerne verwenden. im beispiel sieht man ja schon, wie simpel der break-code zu lesen ist und was für ein klammer-gewüst die if-else kette wird. ausserdem spart man eine variable <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1198672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1198672</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Wed, 27 Dec 2006 18:54:37 GMT</pubDate></item><item><title><![CDATA[Reply to break oder verschachtelte ifs on Wed, 27 Dec 2006 21:02:34 GMT]]></title><description><![CDATA[<p>schieb dir doch einfach n dildo in arsch du affe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1198712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1198712</guid><dc:creator><![CDATA[hirntod]]></dc:creator><pubDate>Wed, 27 Dec 2006 21:02:34 GMT</pubDate></item><item><title><![CDATA[Reply to break oder verschachtelte ifs on Thu, 28 Dec 2006 08:05:33 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13317">@Shinja</a></p>
<p>ah ok, dann hab ich die page falsch verstanden {=</p>
<p>#zusammenfass:<br />
goto = boese<br />
break, continue = nicht boese</p>
<p>ich wuerd sagen das liegt daran</p>
<p>mit goto kann man von seite 1 im code zu seite 215 zeile 23 springen<br />
mit break beendet man immer die aktuelle schleife<br />
welches da uebersichtlicher ist ist ja wohl klar</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1198865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1198865</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Thu, 28 Dec 2006 08:05:33 GMT</pubDate></item><item><title><![CDATA[Reply to break oder verschachtelte ifs on Thu, 28 Dec 2006 10:35:02 GMT]]></title><description><![CDATA[<p>Mr Evil schrieb:</p>
<blockquote>
<p>mit goto kann man von seite 1 im code zu seite 215 zeile 23 springen</p>
</blockquote>
<p>Ich bezweifle, dass jemand 215-seitige Funktionen einsetzt. Und wenn, dann macht das goto den Braten auch nicht mehr fett :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1198891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1198891</guid><dc:creator><![CDATA[Walli]]></dc:creator><pubDate>Thu, 28 Dec 2006 10:35:02 GMT</pubDate></item></channel></rss>