bool und do-while schleife ist so was ok



  • #include <iostream>
    
    using namespace std;
    
    int main()
    {
        do//leider muss die schleifenvariable (hier seltsamerweise antwort) raus
        {
            int zahl1 = 0;//lass das =0 sein, hat hier doch keine bedeutung
            cin >> zahl1;
            int zahl2 = 0;
            cout << "Geben sie die zweite Zahl ein " << endl;//'\n' besser als endl
            cin >> zahl2;
    
            int ergebnis = zahl1 + zahl2;//geht später
    
            cout << "Geben sie das vermutete Ergebnis ein " << endl;
            cin >> vergleich;
    
            bool richtigGeraten = ergebnis == vergleich;//nicht benötigt
            if(ergebnis == vergleich)//if(vergleich==ergebnis)//den interessanten wert links
            {
                cout << " Richtig, du bist toll "<< endl;
            }
            else
            {
                cout << "Leider falsch."<<endl;
                cout << "Das richtige Ergebnis lautet: " << ergebnis << endl;
            }
    
            cout << "Noch eine Runde (J/N)? ";
            char antwort;//antwort, ergebnis, vergleich? die namen gehen noch besser
            cin >> antwort;
        } while('J'==antwort || 'j' == antwort);//den interessanten wert links bitte
    }
    


  • Mein Vorschlag: kein using namespace std;



  • oenone schrieb:

    Mein Vorschlag: kein using namespace std;

    Aus Masochismus? Oder weil Du so viele Andere Biblozheken benutzt, die cout anbieten?



  • Bei
    char antwort;
    brauche ich noch Tipps, Bitte 😞

    ||=== Build: Debug in Imho sauberer (compiler: GNU GCC Compiler) ===|
    C:\Users\juhu123\Documents\testc++\Imho sauberer\main.cpp||In function 'int main()':|
    C:\Users\juhu123\Documents\testc++\Imho sauberer\main.cpp|43|error: 'antwort' was not declared in this scope|
    ||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

    #include <iostream>
    using namespace std;
    int main()
    {
       // char antwort;
    
        do
        {
            cout <<"Geben sie die erste Zahl ein \n";
            int zahl1;
            cin >> zahl1;
            cout <<"Geben sie die zweite Zahl ein \n";
            int zahl2;
            cin >> zahl2;
    
           int ergebnis=zahl1+zahl2;
    
            cout <<"Geben sie das vermutete Ergebnis ein \n";
            int vergleich;
            cin >> vergleich;
    
            if( vergleich != ergebnis)
    
                {
                     cout << "Leider falsch.\n";
                     cout << "Das richtige Ergebnis lautet: "<<ergebnis<< endl;
    
                }
    
           else
                {
                   cout<< " Richtig, du bist toll \n";
                }
    
            cout << "Noch eine Runde (J/N)? ";
            char antwort;
            cin >> antwort;
        }
        while
    
            ('J'==antwort || 'j' == antwort);
    }
    


  • Deklarierst du antwort in der dowhile -Schleife, so ist diese Variable im Schleifenkopf ( while('J'==antwort || 'j' == antwort) ) nicht sichtbar. Deklariere sie (wie auskommentiert) im Scope von main() .

    Was ist mit ascs und volkards Anmerkungen??



  • ich habe alles durch probiert, glaube ich. Aber ich verstehe nur noch Bahnhof und sehe den Wald vor Bäumen nicht 😞



  • #include <iostream>
    using namespace std;
    int main()
    {
        // char antwort;//Ja, da muss die Variable hin! Leider. 
        do
        {
    …
            cout << "Noch eine Runde (J/N)? ";
            char antwort;//Und hier natürlich weg
            cin >> antwort;
        }
        while(was mit antwort);//ist nämlich außerhalb des do-Blocks
    //das regt mich jedesmal auf. 
    }
    


  • juhu123 schrieb:

    und sehe den Wald vor Bäumen nicht 😞

    Anfänger. 🤡

    Im Info-Studium lernst Du (aber auch in Fachforen), daß jeder Baum ein Wald ist. Ein Wald ist ein kreisfreier Graph. Und ein Baum ist ein zusammenhängender Wald. Problem gelöst: Ab jetzt siehst Du immer auch einen Wald, wenn Du einen Baum siehst.



  • danke ,supper 😃
    gute nacht



  • volkard schrieb:

    // ...
    
    int main()
    {
        // char antwort;//Ja, da muss die Variable hin! Leider. 
        do
        {
    
        // ...
    

    Du verwendest ja auch die falsche Schleife ...

    #include <iostream>
    using namespace std;
    int main()
    {
        // char antwort;//Ja, da muss die Variable hin! Leider. 
        for( char antwort{ 'j' }; antwort == 'j'; cin >> antwort )
        {
            cout << "Noch eine Runde (J/N)? ";
        }
    }
    

Anmelden zum Antworten