Problem bei Ausgabe einer Switch - Case Funktion

nelsonmandela

Neues Mitglied
Java:
int prozent = echt/max;
        int ergebnis = 0;
        if(prozent >= 0.95)
        ergebnis= 15;
        if(prozent >= 0.90 && prozent <0.95)
        ergebnis=14;
        if(prozent >= 0.85 && prozent <0.90)
        ergebnis=13;
        if(prozent >= 0.80 && prozent <0.85)
        ergebnis=12;
        if(prozent >= 0.75 && prozent <0.80)
        ergebnis=11;
        if(prozent >=0.70 && prozent <0.75)
        ergebnis=10;
        if(prozent>= 0.65 && prozent <0.70)
        ergebnis= 9;
        if(prozent >= 0.60 && prozent <0.65)
        ergebnis= 8;
        if(prozent >= 0.55 && prozent <0.60)
        ergebnis=7;
        if(prozent >= 0.50 && prozent <0.55)
        ergebnis=6;
        if(prozent >= 0.45 && prozent <0.50)
        ergebnis=5;
        if(prozent >= 0.40 && prozent <0.45)
        ergebnis=4;
        if(prozent >= 0.33 && prozent <0.40)
        ergebnis=3;
        if(prozent >= 0.27 && prozent <0.33)
        ergebnis=2;
        if(prozent >= 0.20 && prozent <0.27 )
        ergebnis=1;
        if(prozent >= 0.00 && prozent <0.20)
        ergebnis=0;
                 
        switch(ergebnis) {
        case 0 :
        System.out.println("Sie sind durchgefallen ");
        break;
        case 1:
        System.out.println("Ihre Leistung ist mangehalft");
        break;
        case 2:
            System.out.println("Ihre Leistung ist mangelhaft");
            break;
            case 3 :
                System.out.println("Ihre Leistung ist mangelhaft");
                break;
                case 4:
                    System.out.println("Ihre Leistung ist ungenügend");
                    break;
                    case 5 :
                        System.out.println("Ihre Leistung ist ungenügend");
                        break;
                        case 6 :
                        System.out.println("Ihre Leistung ist ungenügend");
                        break;
                        case 7 :
                        System.out.println("Ihre Leistung ist befriedigend");
                        break;
                        case 8 :
                        System.out.println("Ihre Leistung ist befriedigend");
                        break;
                        case 9 :
                        System.out.println("Ihre Leistung ist befriedigend");
                        break;
                        case 10 :
                        System.out.println("Ihre Leistung ist gut");
                        break;
                        case 11 :
                        System.out.println("Ihre Leistung ist gut");
                        break;
                        case 12 :
                        System.out.println("Ihre Leistung ist gut");
                        break;
                        case 13 :
                        System.out.println("Ihre Leistung ist sehr gut");
                        break;
                        case 14 :
                        System.out.println("Ihre Leistung ist sehr gut");
                        break;
                        case 15:
                        System.out.println("Ihre Leistung ist sehr gut");
                        break;
   
}}
}
Servus Leute, mir wird dauerhaft ausgegeben, das mein Ergebnis quasi null ist
Woran liegt das?
 
Schau Dir einmal deine if Kette an. Was passiert denn bei einem Wert größer 0.95?

Evtl. fügst du mal Ausgaben in jeden Block ein a.la. System.out.println(„Wert ist über 0.95“); (mit den richtigen Quote Zeichen natürlich …. Mag mir mein Smartphone gerade nicht geben).

Erkennst du das Problem? Siehst du eine Lösung für das Problem
?

Edit: hab gepennt und die if selbst nicht richtig gelesen …. Ist Quatsch gewesen.
Und das, wo der richtige Hinweis ja schon gegeben war 🙂
 
Naja 0 eben.
Verstehe den Hinweis nicht
Soll der Wert denn immer 0 sein? Vermutlich nicht. Also schau Dir die Zuweisung einmal im Detail an: Was passiert da bzw. was machst Du da?

Wobei wir da nur raten können, da wir nicht die Datentypen sehen:
prozent wird vermutlich double sein
echt und max werden int oder long sein.

Dann ist die Frage: Was ist echt / max? Wie rechnet Java?
 

Neue Themen


Zurück
Oben