Archiv verlassen und diese Seite im Standarddesign anzeigen : Ein paar Frage zum Pausieren und zu if und switchcase
Hallo =)
Ich habe vor kurzem mit C++ begonnen und nun haben sich bei mir ein
paar Fragen aufgetan:
1. Welche Befehl zum Pausieren der Konsole sollte ich am Besten verwenden. Ich kenne bisher system("Pause") und getch().
2. In welchem Fall sollte ich if und else anwenden und in welchem ich switch case nehmen sollte.
(Ist es so, dass man if und else nimmt wenn man Datentpypen benutzen will die nicht int sind?
Meine 3. Frage hat eigentlich weniger etwas mit C++ zu tun, jedoch weiß ich nicht in welches Forum ich diese Frage posten sollte:
Kennt jemand ein Buch, dass den Einstieg in das Erstellen von 2-D und 3-D Objekten bzw Bitmaps erklärt?
Danke schonmal im Vorraus für Antworten
mfg Pammy
Crashkid
25.11.2008, 14:46
1. break;
(simpelste oder nicht?)
Aber kann man break nicht nur im switch case benutzen?
Bei mir kommt: error C2043: Schlüsselwort 'break' ungültig
1. break funktioniert auch in Schleifen um diese zu verlassen. Mit pausieren hat das nichts zu tun.
Eine Möglichkeit wäre noch die Funktion Sleep() aus der windows.h, damit pausierst du dein Programm für eine bestimmte Zeit.
2. If und Else benutzt du wenn du nur eine oder maximal zwei mögliche Antworten hast.
Switch hingegen kannst du nutzen wenn es mehrere Möglichkeiten gibt.
Generell kann ein Switch immer durch viele IF's ersetzt werden.
3. Les dich hier mal durch http://www.spieleprogrammierer.de/
Vielen Dank genau das, was ich eigentlich gesucht habe =)
Zum Sleep() nochmal: Eigentlich hätte ich es gern so, dass "Taste drücken zum Fortfahren" in der Art kommt aber egal.
Danke!
Master of Chaos
25.11.2008, 16:21
Wenn du willst kannst du auch einfach das mit Taste drücke zum fortfahren normal als Text ausgeben lassen und danach dann "cin.get();" schreiben. Der Befehl wartet dann einfach auf eine Eingabe von dir.
LG,
Master of Chaos
Super genau das was ich gesucht hab =)
Danke
-[RiDER]-
27.11.2008, 22:20
Hi :D
If und Else benutzt du wenn du nur eine oder maximal zwei mögliche Antworten hast.
Switch hingegen kannst du nutzen wenn es mehrere Möglichkeiten gibt.
Generell kann ein Switch immer durch viele IF's ersetzt werden.
Das ist Unsinn.
Die switch-case-Anweisung verwendest Du, wenn Du genau eine Variable auf verschiedene genau definierte Werte überprüfen willst, die if-Anweisung erlaubt Dir auch Vergleiche, also z.B. "größer als", "kleiner als", außerdem logische Verknüpfungen (z.B. and und or, findet z.B. Anwendung, wenn Du überprüfen möchtest, ob Variable a einen bestimmten Wert hat und Variable b einen anderen bestimmten Wert hat - mit switch-case-Anweisungen so gut wie garnicht umsetzbar...).
Beispiel:
int i;
int j;
[...]
switch(i) // im gesamten switch-case-Statement dreht sich alles um die Variable i!
{
case 1: // nur Überprüfung auf konkrete Werte möglich!
[...]
default: // wenn keins der geprüften konkreten Ereignisse eingetreten ist
[...]
}
if((i == 1 && j == 999) || (i >= j)) // der gesamte Ausdruck muss true "ergeben"
{
[...]
}else if(!(*)(int*)i[i^j*(i <<= j)]) // vom ersten Fall völlig unabhängiger Ausdruck
{
[...]
}else // wenn keiner der geprüften Ausdrücke true "ergab"
{
[...]
}
Mit der Anzahl der überprüfbaren Ausdrücke (war das mit "Antworten" gemeint???) hat das nichts zu tun!
Es stimmt, dass man switch-case-Anweisungen immer durch if-Anweisungen ersetzen kann, wenn man aber ein swich-case-Konstrukt anwenden kann, sollte man das auch tun, es ist meist übersichtlicher, vor allem anderen ist es aber viel schneller... ;)
GreetZ RiDER :D :D :D
Und stimmt es, dass man im switch-case nur Ineteger benutzen kann?
blackberry
30.11.2008, 14:39
Und stimmt es, dass man im switch-case nur Ineteger benutzen kann?
In meinem Buch steht folgendes:
"Die switch-Anweisung setzt den Programmablauf mit einer von mehreren Anweisungen in Abhängigkeit vom Wert eines Ausdrucks ab, der einen Integer-Typ besitzen muß. [...] Für den kontrollierenden Ausdruck findet Integer-Erweiterung statt (§ A.6.1)"
(A.9.4 "Auswahlanweisungen", S. 220, "Programmieren in C", Brian W. Kernighan, Dennis M. Ritchie)
Es ist aber auch möglich Char's einzusetzen
blackberry
30.11.2008, 16:53
Es ist aber auch möglich Char's einzusetzen
Char's werden über Integer-Erweiterung zu int's erweitert.
Char's werden über Integer-Erweiterung zu int's erweitert.
Das war mir schon bewusst. Nur für einen Anfänger in C++ ist das vielleicht etwas zu hoch...
Also Fakt ist, dass man sowohl char als auch int in 'nem Switch verwenden kann. Wie auch von mo0wm schon erwähnt wurde..
GregorSamsa
30.11.2008, 17:16
Man muss einfach folgendermaßen denken:
Wenn ich ein 'a' habe, dann habe ich als dezimal eine 65 und hexadezimal eine 41. Es kommt also nur auf die Schreibweise an:
In C heisst das:
'a' ist gleich 65 ist gleich 0x41
Powered by vBulletin® Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.