0

switch-case Umgebung

HAllo, werde einfach nicht schlau, warum das nicht klappt:

die erste case Bedingung ist nur zum Testen eingefügt, denn TN müsste den Wert 0 haben (habe ich auch durch alert(TN) geprüft. Es geht um eine Berechnung in Abhängigkeit der Teilnehmerzahl eines Kurses. TN ist dann die ZAhl der Teilnehmer. Jetzige Ausgabe ist 3,5. Das dürfte der Wert aus der zweiten case-Bedingung sein. Aber wie gesagt: TN ist 0 (sollte 0 sein). HAt jemand einen Hinweis?

======================= schnipp ======================= 

let TN := number('Anzahl TN Päd');
let Basis := 102 * 2.5 / 19;
switch TN do
case TN = 0:
88
case 0 < TN and TN < 10:
round(Basis * 0.5) / 2
case 9 < TN and TN < 12:
round(Basis * 0.7) / 2
case 11 < TN and TN < 15:
round(Basis * 0.8) / 2
case 14 < TN and TN < 18:
round(Basis * 0.9) / 2
case 18:
round(Basis) / 2
case TN > 18:
round(Basis * 1.1) / 2
default:
0
end

======================= schnapp ======================= 

4 Antworten

null
    • netSME_Sylvain_Moesching
    • vor 3 Jahren
    • Gemeldet - anzeigen

    case 0 < TN and TN < 10:

    case statements can only contain values but not expressions

    • mirko3
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Vorschlag:

    *

    switch TN > 0 do
    case TN < 10:round(Basis * 0.5) / 2
    case TN < 12:round(Basis * 0.7) / 2
    case TN < 15:round(Basis * 0.8) / 2
    case TN < 18:round(Basis * 0.9) / 2
    case TN = 18:round(Basis) / 2
    case TN > 18:round(Basis * 1.1) / 2
    default:
    0
    end

    *

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Maurice,

    ---

    let TN := number('Anzahl TN Päd');
    let Basis := 102 * 2.5 / 19;
    switch TN >= 0 do
    case TN > 0 and TN < 10:
    round(Basis * 0.5) / 2
    case TN > 9 and TN < 12:
    round(Basis * 0.7) / 2
    case TN > 11 and TN < 15:
    round(Basis * 0.8) / 2
    case TN > 14 and TN < 18:
    round(Basis * 0.9) / 2
    case TN = 18:
    round(Basis) / 2
    case TN > 18:
    round(Basis * 1.1) / 2
    default:
    0
    end

    ---

     

    Leo

    • Maurice
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Danke Leo, worked!