Startseite › Foren › Deutsches LiveCode-Forum › Wäre das einfach zu zu programmieren? › Antwort auf: Wäre das einfach zu zu programmieren?
Hi,
ich habe mir Dein Script angeschaut und einige Verbesserungsvorschläge 🙂
1. Regel: keine Anweisungen kopieren, sondern überlegen, wie man eine Struktur schafft, die jeden Block nur einmal enthält (hier habe ich die put „Not allowed“ – Zeilen in ein Command „Put_Not_Allowed_Into_All_Fields“ zu verschieben.
2. Regel: Übersichtliche Wenn-Dann (If-Else)-Strukturen anlegen. Als ich am Ende deines Scripts die ganzen „end if“-Zeilen gesehen habe, war das ein Zeichen dafür, dass hier etwas getan werden muss 🙂
3. Abbruch aus Schleife mit „exit“: wenn es Bedingungen gibt, die ein Überprüfen der anderen Bedingungen überflüssig machen, dann ist es besser, die Bedingung mit exit zu verlassen, anstatt dass der Rechner alle anderen Bedingungen auch erst überprüfen müss. In diesem Fall ist das kein Problem, aber bei komplexeren Strukturen kann sich das schon auf die Geschwindigkeit auswirken.
Hier mein Script-Vorschlag 😀
on mouseUp
put field "Laenge" into L
put field "Hoehe" into H
put field "Tiefe" into T
put field "Gewicht" into G
if (L>1500) or (L+H+T>3000 ) or (G>30000) then
Put_Not_Allowed_Into_All_Fields
exit mouseup
end if
if ( G<=50) and (L<=235) and (H<=162) and (T<=5) then
put "0,70€" into fld "lux"
put "0,95€" into fld "Euro1"
put "1,30€" into fld "Monde1"
put "0,95€" into fld "Euro2"
else if ( G<=500) and (L<=340) and (H<=250) and (T<=20) then
put "1,40€" into fld "lux"
put "2,85€" into fld "Euro1"
put "2,85€" into fld "Euro2"
put "3,90€" into fld "Monde1"
put "3,90€" into fld "Monde2"
put "3,90€" into fld "Monde3"
else if ( G<=2000) and (L<=340) and (H<=250) and (T<=30) then
put "2,80€" into fld "lux"
put "4,75€" into fld "Euro1"
put "4,75€" into fld "Euro2"
put "6,50€" into fld "Monde1"
put "6,50€" into fld "Monde2"
put "6,50€" into fld "Monde3"
else if (G<=2000) and (L+H+T<=900) then
put "4,20€" into fld "Lux"
put "9,50€" into fld "Euro1"
put "9,50€" into fld "Euro2"
put "13,00€" into fld "Monde1"
put "13,00€" into fld "Monde2"
put "13,00€" into fld "Monde3"
else if (G<=10000) then
put "8,40" into fld "Lux"
put "18,05€" into fld "Euro1"
put "30,40€" into fld "Euro2"
put "39,00€" into fld "Monde1"
put "75,40€" into fld "Monde2"
put "111,80€" into fld "Monde3"
else if (G<=30000) then
put "10,50€" into fld "Lux"
put "30,40€" into fld "Euro1"
put "77,90€" into fld "Euro2"
put "111,80€" into fld "Monde1"
put "221,00€" into fld "Monde2"
put "330,20€" into fld "Monde3"
end if
end mouseUp
command Put_Not_Allowed_Into_All_Fields
put "Not Allowed" into fld "lux"
put "Not Allowed" into fld "Euro1"
put "Not Allowed" into fld "Monde1"
put "Not Allowed" into fld "Euro2"
put "Not Allowed" into fld "Monde2"
put "Not Allowed" into fld "Monde3"
end Put_Not_Allowed_Into_All_Fields