Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Wie funktionieren die Operatoren in C++ (<,-,...)??

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
02.01.2009, 14:38 Uhr
~Cazzy
Gast


Hy@all!

Ich bin totale Anfängerin in C++ und schreibe gerade eine Klasse "BeautyCenter", die verschieden Funktionen bietet, unter anderem auch den BMI-Wert ausrechnen.
Nun habe ich aber eine Frage bezüglich der Operatoren in C++:
Warum kann man bei der Switch - Funktion "switch(wert)" nicht einfach <20 oder 20-25 schreiben? Und wenn es so nicht geht, wie kann ich das in C++ machen?
Die Funktion sieht so aus (Die betreffenden Stellen sind Blau markiert):


C++:
void Center::getBMI()
{ int wert, gewicht;
  char geschlecht;
  float groesse;

    cout<<"Sind Sie männlich (m) oder weiblich (w)?"<<endl;
    cin>>geschlecht;
    cout<<"Bitte geben Sie Ihr Gewicht in kg ein:";
    cin>>gewicht;
    cout<<"Bitte geben Sie Ihre Groesse in m ein:";
    cin>>groesse;

    wert = (float) gewicht/(groesse * groesse);

    cout<<"Ihr BMI-Wert betraegt:"<<wert<<endl;

    cout<<"Somit sind Sie:"<<endl;

    switch(geschlecht)
    {
    case ('m'):
        {
            switch(wert)
            {
            case (<20):
                {    cout<<"Untergewichtig!"<<endl;
                    break;
                }

            case (21-25):
                {    cout<<"Normalgewichtig!"<<endl;
                    break;
                }

            case (26-30):
                {    cout<<"Übergewichtig!"<<endl;
                    break;
                }
            }
        }

        case ('w'):
        {
            switch(wert)
            {
            case (<19):
                {    cout<<"Untergewichtig!"<<endl;
                    break;
                }

            case (20-24):
                {    cout<<"Normalgewichtig!"<<endl;
                    break;
                }

            case (25-30):
                {    cout<<"Übergewichtig!"<<endl;
                    break;
                }
            }
        }


    }

}


Dieser Post wurde am 03.01.2009 um 22:10 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.01.2009, 15:43 Uhr
mischa
Fragender


Hallo,
also dein Problem liegt darin, dass du nicht verstanden hast wie ein Operator grundsätzlich funktioniert.
Ein Operator ist eine Funktion die zwei Werte erwartet. Einen L-Wert und einen W-Wert.
z.B. Der Operator für kleiner : < braucht zwei Werte die er miteinander vergleicht. Du kannst nicht einfach <19 oder so schreiben. Erstnest ist das ein Syntax Fehler und für die Maschine komplett unverständlich: WAS? Kleiner als 19?
Genauso ist es wenn du 25-30 schreibst. Das Zeichen „-“ ist in C++ Minus nix mehr. Als wenn du 25-30 schreibst bedeutet es 25 MINUS 30 und nicht zwischen 25 und 30.
Du solltest das Kapitel über Operatoren noch mal nach schlagen bevor du eigene Klassen schreibst.
--
Latein Unterricht ist die spätere Rache der Römer an den Germanen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.01.2009, 15:54 Uhr
~Cazzy
Gast


Aha..ok hab ich verstanden. Aber wie mach ich das denn jetzt am besten? Ich könnte ja bei dem <19 einfach wert<19 machen oder? Aber ich hab das schon mal probiert und dann hat mir der Compiler wieder ne Fehlermeldung ausgespuckt: case expression not constant
Was soll das denn schon wieder bedeuten??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.01.2009, 16:03 Uhr
~Cazzy
Gast


Ok habs bin schon selber draufgekommen! Trotzdem danke!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: