Entwickler-Ecke

Sonstiges (Delphi) - IF-Abfragen funktionieren nicht...


KoPhi - Do 11.05.06 21:02
Titel: IF-Abfragen funktionieren nicht...
Hi Leute,

habe ein kleines Problem

Aufgabe ist folgendermaßen:

...beträgt die Arbeitszeit im Betrieb weniger als 2 Jahre dann Prämie 1%.
...beträgt die Arbeitszeit im Betrieb max. 5 Jahre dann Prämie 2%.
...beträgt die Arbeitszeit im Betrieb länger als 5 Jahre dann Prämie 3%.

---

Meine IF-Funktionen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
IF arbeitszeit<2
then brutto:=grundlohn/100*101;
IF arbeitszeit<=5
then brutto:=grundlohn/100*102;
IF arbeitszeit>5
then brutto:=grundlohn/100*103;


---

Das Problem, wenn ich 1 Jahr Arbeitszeit eingebe nimmt er auch 2%...

Was ist falsch?

Gruß KoPhi

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt


Gausi - Do 11.05.06 21:06


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
IF arbeitszeit < 2 then 
  brutto:=grundlohn/100*101
  else
    IF arbeitszeit <= 5 then 
      brutto:=grundlohn/100*102
      else 
        IF arbeitszeit > 5 then
          brutto:=grundlohn/100*103;


Oder halt Abfragen wie


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
IF arbeitszeit<2
then brutto:=grundlohn/100*101;
IF (arbeitszeit <= 5AND (arbeitszeit >= 2)
then brutto:=grundlohn/100*102;
IF arbeitszeit>5
then brutto:=grundlohn/100*103;


Marco D. - Do 11.05.06 21:06

Die Abfragen werde nacheinander abgearbeitet.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
IF arbeitszeit<2
then brutto:=grundlohn/100*101;
IF arbeitszeit<=5
then brutto:=grundlohn/100*102;
IF arbeitszeit>5
then brutto:=grundlohn/100*103;

Der markierte Teil trifft ja dann auch zu, und es kommt zwei raus. Ist logisch oder? :zwinker:

Besser so:

Delphi-Quelltext
1:
2:
3:
4:
5:
IF arbeitszeit<2
then brutto:=grundlohn/100*101
ELSE IF arbeitszeit<=5
then brutto:=grundlohn/100*102
Else brutto:=grundlohn/100*103;


KoPhi - Do 11.05.06 21:11

Dankeschön an euch beide!

Es funktioniert jetzt und ich habe es kapiert! :D

Toller Service! Innerhalb 4 Minuten 2 Antworten!


Thx

Gruß KoPhi