Nur eine IF-Anweisung funktioniert!?



  • So ich schreibe gerade ein Mathe Programm und da funktioniert einiges nicht,d.h nur eine Schleife bricht ab,die andere funktioniert.
    Ich habe das Volumen für zwei Körper,nähmlich für den Quader & Würfel geschrieben.
    Daraus steht soetwas in der Art...

    //Quader
    if(cin>>quader)
    {
    if(quader = 'a')
    {
    //... Inhalt
    } else {
    //Fehlermeldung definieren...
    }
    }
    
    //Wuerfel
    if(cin>>wuerfel)
    {
    if(wuerfel = 'b')
    {
    //Blabla...
    } else {
    //Fehlermeldung
    }
    }
    

    Also soetwas in der Art habe ich programmiert und wenn ich zbsp. Quader(cin>>quader in die DOS eingebe...) auswähle,funktioniert er nur als einziger,der Würfel wird dagegen ingnoriert.
    Aber wenn ich die Konsole nocheinmal starte und den Würfel-Code eher weiter oben als der Code(if..) schreibe und es kompiliere,funktioniert nur der Würfel,dafür aber nicht der Quader. 😞

    Ich hoffe ihr versteht mich 🕶
    Besser erklären kann ich es nicht und den Code würde ich nie veröffentlichen,weil das so wie bei Spielen ist,jeder will den Code(^^)
    und kopierts ab,also der Code ist ein Projekt von meiner Schule... und diesen hab ich als mein Projekt vorgestellt aber leider ohne Erfolg 🙄

    Deswegen kann ich es wieder nächste Wochen neu machen 👍

    Primer



  • [cpp]
    //Quader
    if(cin>>quader)
    {
    if(quader = 'a')
    {
    //... Inhalt
    } else {
    //Fehlermeldung definieren...
    }
    break;
    }

    //Wuerfel
    if(cin>>wuerfel)
    {
    if(wuerfel = 'b')
    {
    //Blabla...
    } else {
    //Fehlermeldung
    }
    }
    [/cpp]
    ich glaub das sollte es sein ..bin mir aber nicht sicher


  • Mod

    = != ==



  • ups ...camper hat recht ^^

    ziemlich banal XD ..hab ich übersehen 😋



  • //Quader
    if(cin>>quader)
    {
    if(quader = 'a')
    {
    //... Inhalt
    } else {
    //Fehlermeldung definieren...
    }
    [b]break;[/b]
    }
    
    //Wuerfel
    if(cin>>wuerfel)
    {
    if(wuerfel = 'b')
    {
    //Blabla...
    } else {
    //Fehlermeldung
    }
    }
    

    Also dazu kommt folgende Fehlermeldung:

    break statement not within loop or switch

    D.h vermutlich,dass es bei switch oder so sein sollte und nicht in ifAnweisungen ^^

    Aber was wäre nun die Lösung?



  • if(quader == 'a')



  • Ist am Anfang etwas gewöhnungsbedürfdig, aber der Fehler erscheint nie mehr, wenn die Konstanten links stehen:

    if ('a' == quader) ...

    if ('a' = quader) ... gibt eine entsprechende Fehlermeldung

    Gruss Robi



  • Robert.Sonderer schrieb:

    Ist am Anfang etwas gewöhnungsbedürfdig, aber der Fehler erscheint nie mehr, wenn die Konstanten links stehen:

    if ('a' == quader) ...

    😞 Leider geht es auch so nicht.Warum,weiss ich auch nicht 😞
    Aber trodzdem danke für deine Hilfe 👍

    Gäbe es noch eine andere Lösung zu finden?



  • Was für ein Datentyp sind "quarder" und "wuerfel"?

    grüße



  • David_pb schrieb:

    Was für ein Datentyp sind "quarder" und "wuerfel"?

    grüße

    float



  • Dann ist ein Prüfen auf 'a' auch recht doof! 🙂 Nimm char oder std::string als Prüfvariable.

    grüße



  • [edit]gelöscht[/i]



  • David_pb schrieb:

    Dann ist ein Prüfen auf 'a' auch recht doof! 🙂 Nimm char oder std::string als Prüfvariable.

    grüße

    Nein,ich habe mich geiirt:

    Beim Prüfen ... Char
    Beim inneren ... float

    also ist nun 100% richtig,das was ich jetzt gesagt habe.. und nun?

    Primer



  • Mich würd der vollständige Quellcode mal interessieren...



  • David_pb schrieb:

    Mich würd der vollständige Quellcode mal interessieren...

    int eins = 1;
    
        if(cin>>eins)
        {
            if(1 == eins)
            {
            cout<<"Drücke 1 .."<<endl;
            cout<<"a. Quader | b. Wuerfel"<<endl;
            } else if(1 != eins) {
                cout<<"Fehler"<<endl;
            }
            char quader = 'a';
            char wuerfel = 'b';
            ///Beginn
            if(cin>>quader)
            {
                if('a' == quader)
                {
                float a, b, hoehe;
                //...code...
                cout<<"....."<<endl;
                } else if('a' != quader) {
                cout<<"Fehler"<<endl;
            }
    
            }
    
            //Wuerfel
            if(cin>>wuerfel)
            {
             if('b' == wuerfel)
                {
                    cout<<"..."<<endl;
    
                } else if('b' != wuerfel) {
                    cout<<"Fehler"<<endl;
                }
            }
    

    also dieser Teil ist noch vollständen(fast) und den andere Quellcode habe ich nicht hergegeben,weil er mit diesem nichts zu tun hat,außer man berechnet etwas präziser,aber das hab ich ausgeschnitten 😃

    ALso ich weiss nicht,wo mein Fehler ist 😞



  • Vielleicht in etwas so:

    ...
    cin >> eins;
    
    if(1 == eins)
    {
       ...
       cin >> auswahl;
    
       if('a' == auswahl)
       {
          // Quader
          ...
       }
       else if('b' == auswahl)
       {
          // Wuerfel
          ...
       }
    
       ...
    }
    

    oder versteh ich hier was komplett verkehrt?



  • NurZuBesuch schrieb:

    Vielleicht in etwas so:

    ...
    cin >> eins;
    
    if(1 == eins)
    {
       ...
       cin >> auswahl;
    
       if('a' == auswahl)
       {
          // Quader
          ...
       }
       else if('b' == auswahl)
       {
          // Wuerfel
          ...
       }
    
       ...
    }
    

    oder versteh ich hier was komplett verkehrt?

    geht leider noch immer nicht 😞
    Noch etwas vielleicht? 😃



  • Primer schrieb:

    Noch etwas vielleicht? 😃

    Sind wir hier beim Heiteren Coderaten? 😡

    Kreise den Fehler mal ein bis du uns vollständigen
    Code mit Deklarationen schicken kannst.



  • [quote="Primer"]

    //Quader
    if(cin>>quader)
    {
    if(quader = 'a')
    {
    //... Inhalt
    } else {
    //Fehlermeldung definieren...
    }
    [b]break;[/b]
    }
    
    //Wuerfel
    if(cin>>wuerfel)
    {
    if(wuerfel = 'b')
    {
    //Blabla...
    } else {
    //Fehlermeldung
    }
    }
    

    quote]

    Wenn schon, quader == 'a' !!!!! ⚠ !!

    corvin



  • corvin1397 schrieb:

    Wenn schon, quader == 'a' !!!!! ⚠ !!

    Soweit waren wir schon! 🕶



  • Also das hab ich schon längst geschrieben,dass ich das eh.. richtig hatte,nur nicht das worum es geht 😞

    was könnte man denn noch alles versuchen? 😕


Anmelden zum Antworten