For-schleife und switch-anweisung...
-
Hab hier Folgenden Codeausschnitt:
for (int j = 0; j < 10; j++) cin >> ZahlA[j]; cout << "Wollen sie eine weitere Zahle eingeben?[j/n]\n" << flush; char Wahl; cin >> Wahl; switch(Wahl){ case 'j': // Hier liegt das Problem!!! case 'n': break; default: cout <<"Ungültige Eingabe, Programm wird beendet!!!"<< flush; exit(999); };wie bring ich die switch anweisung dazu wieder zur for-schleife zurückzukehren??
oder sollt ich das lieber anders schreiben??
Entschuldigung für eventuelle Anfängerfehler, bin noch Neuling
Mux
-
Schön eingerückt hast du das, was du in der For-Schleife haben willst schonmal. Damit der Compiler das auch versteht, verpasst du der ganzen Sache am besten noch ein paar geschweifte Klammern. Sonst wird nur das Statement, was direkt nach for (...) steht mehrmals ausgeführt.
-
okay!
danke erstmal aber wie gehts dann genau weiter ? xD
-
Womit weiter? Ich hatte dich so verstanden, dass du wissen willst, was du machen musst, damit es nachm switch-case wieder oben weitergeht.

Das ginge in deinem Fall dann so:
for (int j = 0; j < 10; j++) { //... //... }
-
aso
nein ich meinte wenn der anwender "j" eingibt, dann soll die switch anweisung wieder zum for hochspringen
oder war das dann schon das was ich meinte? bin schon etwas müde sry 
-
Steht "Zahle" für Zahl oder für Zeile?
Also was willst du hiervon?
a) 10 Zahlen werden eingegeben, dann darf der Benutzer entscheiden, ob er nochmal 10 eingeben soll.
oder b) Es wird eine Zahl eingegeben, dann wird gefragt, ob nochmal eine eingegeben werden soll, und das ganze maximal 10 mal?Zweites könntest du zb. so machen:
#include <iostream> #include <vector> using namespace std; int main() { typedef vector<int> TZahlen; TZahlen zahlen; bool fertig(false); do { cout << "Bitte geben sie eine Zahl ein." << endl; int zahl( 0 ); cin >> zahl; zahlen.push_back( zahl ); cout << "Wollen sie eine weitere Zahle eingeben?[j/n]" << endl; string wahl; cin >> wahl; if ( wahl == "n" ) fertig = true; else if ( wahl != "j" ) { cout << "Ungültige Eingabe, Programm wird beendet." << endl; return 999; } } while ( !fertig ); // Ausgabe for ( TZahlen::iterator it( zahlen.begin()); it != zahlen.end(); ++it ) cout << *it << " "; cout << endl; return 0; }Fehlerfälle wie die Eingabe einer ungültigen Zeichenfolge als Zahl usw. sind noch nicht abgefangen.
-
es sind zahlen gemeint! es handelt sich dabei um die Addiotions-Funktion eines Taschenrechners!! Aarg schon wieder die sache mit dem vektor... die kam in meinem c++ Buch nicht vor
Es war fall zwei, danke 
[Morgen kommen wahrscheinlich noch mehr fragen xD]
Mux
-
Es geht auch ohne Vektor nur mit C-Arrays. Ist natürlich gut wenn man die auch verstanden hab, aber mit denen handelt man sich halt schnell mal andere Probleme ein.
-
ja die arrays zu verstehen is ja nich schwer
könntest du mir vlt ein "Tutoriotal" für vektoren schicken?? oder mir kurz die funktionsweise und syntax erklären? Dann kann ich da auch mal mitreden 
-
http://www.cplusplus.com/reference/stl/vector/
http://de.wikibooks.org/wiki/C%2B%2B-Programmierung:Vector
http://en.wikipedia.org/wiki/Vector%28C%2B%2B%29
-
siehe C++ Reference: http://www.cplusplus.com/reference/stl/vector/
Stöbere dort mal ein wenig.
-
DANKE
Damit wär dann ein problem aus dem weg geschafft! danke nochmal
Mux
-
Prog_mux schrieb:
Aarg schon wieder die sache mit dem vektor... die kam in meinem c++ Buch nicht vor

Bist du sicher, dass es ein C++-Buch war und kein C-Buch? Ein C++-Buch, das die grundlegensten Container der Standardbibliothek nicht behandelt gehört eigentlich gleich in die blaue Tonne...
-
Um noch mal auf die Ausgangsfrage zurück zu kommen. Ich geh mal davon aus, dass dein Anweisungsblock für
forjetzt in geschweiften Klammern steht. Schau dir malbreakin Verbindung mitswitchan. Und statt die Schleife mitbreakzu verlassen wäre es sinnvoller eine zusätzliche Bedingung für die Ausführung der Schleife zu definieren.bool fertig = false; for (int i = 0; (i < Durchlaeufe) && !fertig; ++i) { // && logisches Und, verknüpft die beiden Bedingungen // ! negiert den Ausdruck (true->false und false->true) switch (x) { case 1: // bei x == 1 break; // switch verlassen case 2: // bei x == 2 case 3: // bei x == 3 oder x == 2, weil switch nicht verlassen wurde fertig = true; break; // letztes break ist optional, weil switch zuende } // d.h. fertig wird bei 2 oder 3 gesetzt }
-
@pumuckl es heißt: Objektorientiertes Programmieren mit c++ xD es war also ein buch aber du hast recht: es ist für die tonne und dafür is die tonne eig noch zu gut

@Paul Müller
Danke!! Jetzt hab ich noch eine möglichkeit
aber das mit den vektoren kann ich ja jetzt auch 
-
Prog_mux schrieb:
@pumuckl es heißt: Objektorientiertes Programmieren mit c++ xD es war also ein buch aber du hast recht: es ist für die tonne und dafür is die tonne eig noch zu gut

Hmm, auf Google Books sieht das eigentlich ganz vielversprechend aus. Strings, Vectoren und die anderen STL-Container werden laut Inhaltsverzeichnis sehr früh besprochen und C-Arrays erst später als kleines Kapitel. Und die Beispielcodes die ich bei der Vorschau gesehen hab, waren eigentlich auch ganz gut.
-
sry es hieß: C++ Objekorientiertes Programmieren von anfang an
soll jetzt keine falschen eindruck vermitteln 
-
Prog_mux schrieb:
sry es hieß: C++ Objekorientiertes Programmieren von anfang an
soll jetzt keine falschen eindruck vermitteln 
Ahh, kein Preview bei Google, aber Autor Jürgen Wolf. Das erklärt alles. Wegschmeißen.
-
okay! kannst mir ein neues empfehlen?

*altes buch verbrenn*
-
Schau mal in die FAQ, dort gibts eine ausführliche Bücherliste
