<?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[Warum muss man switch-anweisungen breaken?]]></title><description><![CDATA[<p>hallo</p>
<p>warum muss man das? folgender code:</p>
<pre><code class="language-cpp">int i = 1;
    switch(i)
    {
    	case 0: ShowMessage(&quot;0&quot;);
        case 1: ShowMessage(&quot;1&quot;);
        case 2: ShowMessage(&quot;2&quot;);
        case 3: ShowMessage(&quot;3&quot;);
    }
</code></pre>
<p>führt dann case 2: und case 3: auch noch aus. und das nur weil man die case blöcke ohne ein break verseht. aber das macht doch keinen sinn, weil i ist nunmal nicht 2 oder 3. warum also ist der fall dennoch erfüllt?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/242159/warum-muss-man-switch-anweisungen-breaken</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 04:26:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/242159.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 31 May 2009 12:42:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Warum muss man switch-anweisungen breaken? on Sun, 31 May 2009 12:42:07 GMT]]></title><description><![CDATA[<p>hallo</p>
<p>warum muss man das? folgender code:</p>
<pre><code class="language-cpp">int i = 1;
    switch(i)
    {
    	case 0: ShowMessage(&quot;0&quot;);
        case 1: ShowMessage(&quot;1&quot;);
        case 2: ShowMessage(&quot;2&quot;);
        case 3: ShowMessage(&quot;3&quot;);
    }
</code></pre>
<p>führt dann case 2: und case 3: auch noch aus. und das nur weil man die case blöcke ohne ein break verseht. aber das macht doch keinen sinn, weil i ist nunmal nicht 2 oder 3. warum also ist der fall dennoch erfüllt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1718610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1718610</guid><dc:creator><![CDATA[switchy]]></dc:creator><pubDate>Sun, 31 May 2009 12:42:07 GMT</pubDate></item><item><title><![CDATA[Reply to Warum muss man switch-anweisungen breaken? on Sun, 31 May 2009 12:46:33 GMT]]></title><description><![CDATA[<p>Weil es viele Anwendungsfälle gibt, bei denen der Code nach der nächsten <code>case</code> -Sprungmarke ebenfalls noch ausgeführt werden soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1718613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1718613</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 31 May 2009 12:46:33 GMT</pubDate></item><item><title><![CDATA[Reply to Warum muss man switch-anweisungen breaken? on Sun, 31 May 2009 12:51:28 GMT]]></title><description><![CDATA[<p>achso danke. demnach also eine standard regelung die das besagt? und gehe ich richtig der annahme das man die letzte anweisung (auch default) nie breaken muss? macht ja auch keinen sinn, kommt ja nichts mehr danach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1718615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1718615</guid><dc:creator><![CDATA[switchy]]></dc:creator><pubDate>Sun, 31 May 2009 12:51:28 GMT</pubDate></item><item><title><![CDATA[Reply to Warum muss man switch-anweisungen breaken? on Sun, 31 May 2009 12:57:08 GMT]]></title><description><![CDATA[<p>switchy schrieb:</p>
<blockquote>
<p>achso danke. demnach also eine standard regelung die das besagt?</p>
</blockquote>
<p>Ja.</p>
<p>switchy schrieb:</p>
<blockquote>
<p>und gehe ich richtig der annahme das man die letzte anweisung (auch default) nie breaken muss? macht ja auch keinen sinn, kommt ja nichts mehr danach.</p>
</blockquote>
<p>Genau. Bei normalen <code>case</code> -Marken mach ich es zwar aus Konsistenzgründen, ist auch praktisch, wenn man nachträglich noch eine Marke hinzufügen will. Bei <code>default</code> jedoch nie. Aber das ist dir selbst überlassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1718619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1718619</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 31 May 2009 12:57:08 GMT</pubDate></item><item><title><![CDATA[Reply to Warum muss man switch-anweisungen breaken? on Sun, 31 May 2009 12:57:21 GMT]]></title><description><![CDATA[<p>Müssen nicht, vielleicht ist es aber trotzdem ganz sinnvoll. Wenn jemand später einen weitern Fall hinzufügt muß er nicht den davor noch um ein break ergänzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1718620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1718620</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Sun, 31 May 2009 12:57:21 GMT</pubDate></item><item><title><![CDATA[Reply to Warum muss man switch-anweisungen breaken? on Sun, 31 May 2009 12:59:37 GMT]]></title><description><![CDATA[<p>switchy schrieb:</p>
<blockquote>
<p>achso danke. demnach also eine standard regelung die das besagt? und gehe ich richtig der annahme das man die letzte anweisung (auch default) nie breaken muss? macht ja auch keinen sinn, kommt ja nichts mehr danach.</p>
</blockquote>
<p>Es gibt aber auch keinen Grund, es nicht zu tun. Wenn du später weitere Fälle hinzufügst, übersiehst du leicht das fehlende <code>break</code> .<br />
Ich benutze <code>case</code> grundsätzlich immer mit <code>break</code> und in den Ausnahmefällen wo ich es nicht tue, kommentiere ich explizit, dass und warum das <code>break</code> fehlt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1718622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1718622</guid><dc:creator><![CDATA[Registrierter Troll]]></dc:creator><pubDate>Sun, 31 May 2009 12:59:37 GMT</pubDate></item><item><title><![CDATA[Reply to Warum muss man switch-anweisungen breaken? on Sun, 31 May 2009 13:17:57 GMT]]></title><description><![CDATA[<p>gute tipps. danke euch beiden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1718628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1718628</guid><dc:creator><![CDATA[switchy]]></dc:creator><pubDate>Sun, 31 May 2009 13:17:57 GMT</pubDate></item><item><title><![CDATA[Reply to Warum muss man switch-anweisungen breaken? on Sun, 31 May 2009 19:13:23 GMT]]></title><description><![CDATA[<p>Ein klassischer Anwendungsfall für dieses &quot;fall-through&quot; Verhalten ist, wenn man mehrere Fälle exakt gleich behandeln will:</p>
<pre><code class="language-cpp">void foo(int i)
{
    switch (i)
    {
    case 1:
    case 2:
        one_or_two();
        break;

    case 3:
    case 4:
        three_or_four();
        break;

    default:
        invalid_parameter();
        break;
    }
}
</code></pre>
<p>(Das ist übrigens auch die einzige Variante in der das in C# noch erlaubt ist. Sobald irgendwelcher Code zwischen &quot;case 1&quot; und &quot;case 2&quot; stehen würde, wäre es in C# verboten.)</p>
<p>Ein anderer Anwendungsfall wäre Duff's Device: <a href="http://en.wikipedia.org/wiki/Duff's_device" rel="nofollow">http://en.wikipedia.org/wiki/Duff's_device</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1718794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1718794</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 31 May 2009 19:13:23 GMT</pubDate></item></channel></rss>