0

Die switch-Anweisung will nicht

Liebes Forum,

irgendwie werden die o.g. Anweisung und ich keine Freunde. Was ist an diesem Code falsch?

switch Zahlung do
case Zahlung = 1:
  Betrag := Vertrag.Beitrag
case Zahlung = 2:
  Betrag := Vertrag.AufnGeb
case Zahlung := 3:
  Betrag := Vertrag.Beitrag + Vertrag.AufnGeb
default:
  Betrag := 0
end

Zahlung ist ein Auswahlfeld. Mit verschachtelten if-Anweisungen klappt es. 

Vielen Dank im Voraus,

Jörg

3 Antworten

null
    • Frank_Schafer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo,

    die Vergleichsvariable steht ja schon nach dem switch- gehört also nicht mehr zum case:

    switch Zahlung do
    case 1:
      Betrag := Vertrag.Beitrag
    case 2:
      Betrag := Vertrag.AufnGeb
    case 3:
      Betrag := Vertrag.Beitrag + Vertrag.AufnGeb
    default:
      Betrag := 0
    end

    VG Frank

    • Joerg.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Aaaaaah!

    Vielen Dank, Frank!

    • john_eans
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Ich fand das Thema ganz gut, daher poste ich es hier....

    Habe folgenden Code, der macht auch was er soll...aber ich versteh nicht ganz, warum ich jeweils in der ersten Zeile das ">" brauch... Ich hab hier den Code gesehen ohne einen Vergleichsoperator hinter dem switch.

     

    let ogF := 35;
    let ugF := 30;
    let ogK := 40;
    let ugK := 35;
    let ogE := 30;
    let ugE := 25;
    switch 'Fett %' > 0 do
    case 'Fett %' > ogF:
    0
    case 'Fett %' >= ugF:
    1
    default:
    0
    end + switch 'Kohlenhydrate %' > 0 do
    case 'Kohlenhydrate %' > ogK:
    0
    case 'Kohlenhydrate %' >= ugK:
    1
    default:
    0
    end + switch 'Eiweiß %' > 0 do
    case 'Eiweiß %' > ogE:
    0
    case 'Eiweiß %' >= ugE:
    1
    default:
    0
    end

     

    Grüße und Danke!