Problem bei Whileschleife



  • Hallo!

    Ich bin absoluter C++ Anfänger und wollte fragen warum mich die Whileschleife im Screenshot nicht mehr raus lässt wenn ich x oder y eingebe.

    <a href="http://www.directupload.net" target="_blank"><img src="http://fs5.directupload.net/images/161121/vz2ce36f.png" title="Kostenlos Bilder und Fotos hochladen"></a>

    Wenn ich die != in == kann ich ewig in der Schleife bleiben wenn ich x oder y eingebe. Doch wenn ich != lasse dann geht er immer in die Whileschleife. Egal ob ich davor x oder y eingegeben habe.

    Was mache ich falsch?

    Danke für eure Hilfe!!!

    Gruß



  • Tja, wenn du doch einfach den Code eingefügt hättest...



  • #include <iostream>

    using namespace std;

    int main (void)
    {
    char pw;
    string passwortalt = "test";
    string passwortneu;
    string passwortneu2;
    string passworteingabe;

    cout << "Willkommen in diesem kleinen Programm" << endl;
    cout << "Geben sie x fuer ein neues Passwort setzen ein oder y fuer den log in: ";

    cin >> pw;

    while(pw!='x'||pw!='y'){

    cout << "Machen sie bitte eine gueltige Eingabe!" << endl;
    cout << "Ihre Wahl: ";
    cin >> pw;

    }

    if(pw=='x'||pw=='y'){
    if(pw=='x'){
    cout << "Geben sie das alte Passwort ein: ";
    cin >> passwortalt;
    cout << endl;

    cout << "Geben sie das neue Passwort ein: ";
    cin >> passwortneu;
    cout << endl;

    cout << "Geben sie das neue Passwort noch einmal ein: ";
    cin >> passwortneu2;
    cout << endl;
    if(passwortneu==passwortneu2){
    cout << "Passwort erfolgreich geaendert!";
    cout << endl;}
    else{
    cout << "Passwort wurde nicht geändert!" << endl;
    cout << "Programm wird mit dem nächste Tastendruck beendet!";}}
    else{
    cout << "Passwort eingeben: ";
    cin >> passworteingabe;
    if(passworteingabe==passwortalt){
    cout << "Programm wird geladen!";
    }
    else{
    cout << "Programm wird geschlossen!";
    }

    }

    }

    cin.sync();
    cin.get();
    return 0;
    }

    **********************************

    Hab alles nochmal komplett rein. Nicht lachen 😛 . Bin ja am lernen 😉
    Wenn ich diesen Code lade, dann komm ich egal was ich eingebe in die Whileschleife und diese lässt mich auch nicht mehr raus. Auch wenn ich x oder y eingebe....



  • manni66 schrieb:

    Tja, wenn du doch einfach den Code eingefügt hättest...

    Hab ich mir auch gedacht 🙂

    Sorry



  • Welcher Wert kann denn gleichzeitig x und y sein?



  • Gleichzeitig gar keiner.
    Wollte einfach ne While basteln die prüft ob in pw ein x steht oder ein y.
    wenn das der Fall ist soll das "Hauptprogramm" ablaufen und wenn nicht soll er so lange fragen bis in pw eben x oder y steht.

    Vllt überreiße ich auch einfach irgendwas nicht 🙂



  • while(pw!='x'||pw!='y')
    

    heißt doch:
    Führe die Schleife aus, solange pw ungleich x oder pw ungleich y ist ...
    pw ist aber immer ungleich x oder ungleich y ...



  • Boolsche Algebra und hier speziell das De Morgansche Gesetz:

    https://de.wikipedia.org/wiki/De_Morgansche_Gesetze



  • Danke euch 🙂 👍


Anmelden zum Antworten