Noch eine Frage zu Schleifen
-
Was muß ich machen, damit das Programm auch stehenbleibt?
Und was ist da generell falsch????Danke im vorraus....
#include <iostream>
using namespace std;int main ()
{ int Code;
int Eingabe;cout << " Bitte geben Sie den Code ein : " ;
cin >> Code;while ( Code = 2333)
{
cout << " Herzlich Willkommen ! " ;}
while ( Code < 2333)
{cout << " Der Code ist falsch! Versuchen Sie es noch einmal! ";
cin >> Eingabe;}
return 0;
}

-
while ( Code = 2333)Ist eine Zuweisung
Der Variablen Code wird der Wert 2333 zugewiesen. Der Ausdruck ergibt 2333 und das ist <> 0 daher wird diese Schleife nie verlassen.
Müsste heissenwhile ( Code == 2333)Was aber in deinem Fall keinen grossen Unterschied macht denn wenn du einmal in der Schleife bist kommst du nicht mehr raus.
KurtWahrscheinlich willst du so etwas
int main () { int Code; cout << " Bitte geben Sie den Code ein : " ; cin >> Code; if ( Code == 2333) { cout << " Herzlich Willkommen ! " ; } else { while ( Code != 2333) { cout << " Der Code ist falsch! Versuchen Sie es noch einmal! "; cin >> Code; } cout << " Herzlich Willkommen ! " ; } return 0; }
-
1. Katastrophale Einrückung
2. In Zukunft, wenn du Code postest, bitte [ cpp ][ /cpp ]-Tags verwenden
3. while != if; while ist eine Schleife du willst doch nichts in einer Schleife ausgeben
4. Code = 2333 ist eine Zuweisung, sollte wohl eher Code == 2333 heißen
5. Das zweite while sollte eine Schelilfe sein, aber das gehört wohl um den gesamten Block.Hier ein Versuch:
#include <iostream> using namespace std; int main () { int code = 0; while(code != 2333) { cout << "Bitte geben Sie den Code ein: "; cin >> code; if(code != 2333) cout << "Der Code ist falsch. Versuchen Sie es noch einmal!" << endl; } cout << "Herzlich Willkommen!" << endl; return 0; }MfG SideWinder
-
Visual Newbie schrieb:
cout << " Der Code ist falsch! Versuchen Sie es noch einmal! ";
cin >> Eingabe;Warum schreibst du die Eingabe in 'Eingabe'? Da passiert doch gar nichts? Muss in 'Code'
-
#include <iostream> using namespace std; int main() { //Code soll immer 2333 bleiben. //const sagt dem Compiler, dass er schimpfen und die Arbeit verweigern soll, wenn man versucht Code später etwas anderes zuzuweisen const int Code = 2333; int Eingabe; cout << "Herzlich Willkommen! " << endl; cout << "Bitte geben Sie den Code ein : " ; cin >> Eingabe; if( Code == Eingabe ) //Der Gleichheitsoperator lautet == cout << "Super, sie haben den Code gleich beim ersten Mal richtig eingegeben!" << endl; else while ( Code != Eingabe) //Der Gleichheitsoperator lautet != { cout << "Der Code ist falsch! Versuchen Sie es noch einmal! " << endl; cout << "Bitte geben Sie den Code ein : " ; cin >> Eingabe; } //Im Eingabebuffer ist noch ein Linefeed '\n', das wird jetzt ignoriert und ist dann weg cin.ignore(); cout << "Fertig" << endl; cin.get(); }
-
Oops, da hat sich der Copy & Paste - Fehlerteufel eingeschlichen! Es muss natürlich heißen:
//Der Ungleichheitsoperator lautet !=