<?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[Probleme mit switch-case]]></title><description><![CDATA[<p>Guten Morgen.<br />
Ich hab da ein Probleme mit einer switch-case anweisung bzw wie ich die aufstellen könnte.</p>
<p>Es geht um die auswertung von Tasten-Eingaben.<br />
definiert sind u.a. die tasten a-z mit</p>
<pre><code class="language-cpp">#define KEY_A 0
#define KEY_B 1
...
#define KEY_Z 26
...
#define MAX_KEY 35
</code></pre>
<p>in meinem Input Handler werden die mit nem bool-array ausgewertet so das ich letztendlich nur noch mit einem</p>
<pre><code class="language-cpp">if(IHandler.bKeys[KEY_A])
</code></pre>
<p>teste, ob (in dem fall) A gedrückt wurde.</p>
<p>nun wollte ich das ganze in eine switch-case anweisung packen.<br />
ist das in diesem fall so einfach möglich? ist ja nun ne abfrage,</p>
<p>1. welche taste gedrückt wurd<br />
2. ob sie true ist</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/251878/probleme-mit-switch-case</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 05:27:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/251878.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Oct 2009 06:13:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit switch-case on Mon, 12 Oct 2009 06:13:46 GMT]]></title><description><![CDATA[<p>Guten Morgen.<br />
Ich hab da ein Probleme mit einer switch-case anweisung bzw wie ich die aufstellen könnte.</p>
<p>Es geht um die auswertung von Tasten-Eingaben.<br />
definiert sind u.a. die tasten a-z mit</p>
<pre><code class="language-cpp">#define KEY_A 0
#define KEY_B 1
...
#define KEY_Z 26
...
#define MAX_KEY 35
</code></pre>
<p>in meinem Input Handler werden die mit nem bool-array ausgewertet so das ich letztendlich nur noch mit einem</p>
<pre><code class="language-cpp">if(IHandler.bKeys[KEY_A])
</code></pre>
<p>teste, ob (in dem fall) A gedrückt wurde.</p>
<p>nun wollte ich das ganze in eine switch-case anweisung packen.<br />
ist das in diesem fall so einfach möglich? ist ja nun ne abfrage,</p>
<p>1. welche taste gedrückt wurd<br />
2. ob sie true ist</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1791187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1791187</guid><dc:creator><![CDATA[Eroda]]></dc:creator><pubDate>Mon, 12 Oct 2009 06:13:46 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit switch-case on Mon, 12 Oct 2009 06:23:01 GMT]]></title><description><![CDATA[<p>Eroda schrieb:</p>
<blockquote>
<p>1. welche taste gedrückt wurd<br />
2. ob sie true ist</p>
</blockquote>
<p>Gibt es auch den zustand dass eine Taste gedrückt und false ist? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1791188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1791188</guid><dc:creator><![CDATA[general bacardi]]></dc:creator><pubDate>Mon, 12 Oct 2009 06:23:01 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit switch-case on Mon, 12 Oct 2009 06:29:24 GMT]]></title><description><![CDATA[<p>ne.<br />
wenn sie gedrückt wird, ist sie true und wird die taste losgelassen ist sie false</p>
<p>ich hab das eher so gemeint das ich ja checken muss, welche teste ist gedrückt<br />
(KEY_A, KEY_B, KEY_C, ...)<br />
und dann ob sie true/false ist.</p>
<p>aber ich glaub das das mit ner for-schleife dann doch besser wäre zu realisieren</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1791191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1791191</guid><dc:creator><![CDATA[Eroda]]></dc:creator><pubDate>Mon, 12 Oct 2009 06:29:24 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit switch-case on Mon, 12 Oct 2009 11:11:58 GMT]]></title><description><![CDATA[<p>Welche Fkt nutzt du denn?<br />
WinAPI?<br />
Falls ja sind die defines unnötig bzw falsch:<br />
KEY_A ist 'A'<br />
KEY_B ist 'B'<br />
etc<br />
'0' ... '9' ist auch '0' ... '9' - nur für das num-pad gibts dann noch VK_NUM_0 ... _9 oder so was in der richtung<br />
dann gibts noch VK_RETURN, ... und so weiter...</p>
<p>und wie speicherst du, welche taste gedrückt ist? wenns ne map ist, würdest du dir relativ viel arbeit ersparen können^^ hast aber &quot;nur&quot; noch O(log(n)) und nicht mehr O(1) wie du es in nem c-array haben könntest...</p>
<p>mit ner for-schleife geht das leider nicht ganz standard-konform, da nur 'A' &lt; 'Z' gegeben ist, aber nicht, dass 'A'...'Z' direkt aufeinander folgen.<br />
das kannst du entweder über nen c-array auf dem stack und mittels for lösen (das sollte der compiler wegoptimieren können) oder dich darauf verlassen, dass dein code niemals auf komische plattformen portiert werden soll oder wirklich nur mit nem großen switch (in der for-schleife)...<br />
da weiß ich nicht, in wie fern der compiler so etwas vll auch weg-optimieren kann...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1791306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1791306</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 12 Oct 2009 11:11:58 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit switch-case on Mon, 12 Oct 2009 20:35:19 GMT]]></title><description><![CDATA[<p>naja, habs nu etwas anders gemacht, mit</p>
<pre><code class="language-cpp">std::string OneChar;
char cChar[]={'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 
	      'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
for(int i=0; i&lt;26; i++)
{
	if(IHandler.bKeys[i]==true)
	{
		OneChar=cChar[i];
		IHandler.bKeys[i]=false;
		break;
	}
}
cCon.AddCharToLine(OneChar);
</code></pre>
<p>was auch recht gut funktioniert <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/1791645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1791645</guid><dc:creator><![CDATA[Eroda]]></dc:creator><pubDate>Mon, 12 Oct 2009 20:35:19 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit switch-case on Mon, 12 Oct 2009 22:33:45 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">if(IHandler.bKeys[i]==true)
</code></pre>
<p>Das ist wohl etwas doppelt gemoppelt. Eine Bedingung auf true zu prüfen ist nicht nötig, dass macht der Compiler schon von ganz alleine <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>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1791698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1791698</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Mon, 12 Oct 2009 22:33:45 GMT</pubDate></item></channel></rss>