Hallo Jungs!
Danke für die vielen konstruktiven
Anregungen!
@vitis
"Es bleibt eine Verzweigung.
Wenn man im Forum die richtigen Termini
verwendet hilft das den Lesern die Fragen
auch zu verstehen und die Chance auf qualitative
Hinweise erhöht sich. "
=> da gebe ich Dir Recht und das war mein Fehler!
in welchen Teilen siehst Du bei mir einen schlechten "Programmierstil"? => Bsp's. bitte
Hier noch einmal ein etwas bessere Form meines Codes:
Code:
Case 2 : If Rel_kue_auf = 0 And Fenster_kue_zu = 0 Then
Toggle Rel_kue_zu
Fenster_kue_auf = 0
Else
Twi_daten = 0
Goto Ende
End If
If Rel_kue_zu = 1 And Flag_kue_zu_2 = 0 And Flag_kue_auf_2 = 0 Then
Flag_kue_zu_1 = Rolltime + Timecount
Elseif Rel_kue_zu = 1 And Flag_kue_auf_2 > 0 Then
Flag_kue_zu_2 = Rolltime - Flag_kue_auf_2
Flag_kue_zu_1 = Timecount + Flag_kue_zu_2
Flag_kue_auf_2 = 0
End If
If Rel_kue_zu = 0 And Flag_kue_zu_2 > 0 Then
Elseif Rel_kue_zu = 1 And Flag_kue_zu_2 > 0 Then
Flag_kue_zu_1 = Timecount + Flag_kue_zu_2
Flag_kue_zu_2 = 0
End If
If Rel_kue_zu = 0 And Flag_kue_zu_1 > 0 Then
Flag_kue_zu_2 = Timecount
Flag_kue_zu_2 = Flag_kue_zu_1 - Flag_kue_zu_2
End If
Twi_daten = 0
Case 22 : If Rel_kue_auf = 0 And Fenster_kue_zu = 0 Then
Toggle Rel_kue_zu
Fenster_kue_auf = 0
Else
Twi_daten = 0
Goto Ende
End If
If Rel_kue_zu = 1 And Flag_kue_zu_2 = 0 And Flag_kue_auf_2 = 0 Then
Flag_kue_zu_1 = Rolltime + Timecount
Elseif Rel_kue_zu = 1 And Flag_kue_auf_2 > 0 Then
Flag_kue_zu_2 = Rolltime - Flag_kue_auf_2
Flag_kue_zu_1 = Timecount + Flag_kue_zu_2
Flag_kue_auf_2 = 0
End If
If Rel_kue_zu = 0 And Flag_kue_zu_2 > 0 Then
Elseif Rel_kue_zu = 1 And Flag_kue_zu_2 > 0 Then
Flag_kue_zu_1 = Timecount + Flag_kue_zu_2
Flag_kue_zu_2 = 0
End If
If Rel_kue_zu = 0 And Flag_kue_zu_1 > 0 Then
Flag_kue_zu_2 = Timecount
Flag_kue_zu_2 = Flag_kue_zu_1 - Flag_kue_zu_2
End If
Twi_daten = 0
Ende: <<<==== hier ist das ende
end select
Was wollte ich damit bezwecken?:
tritt eine Case-Fall ein:
case 22: If Rel_kue_auf = 0 And Fenster_kue_zu = 0 Then
Toggle Rel_kue_zu
Fenster_kue_auf = 0
Else
Twi_daten = 0
Goto Ende
End If
und die If-Anweisung ist nicht wahr dann sollen Daten in "Twi_daten " gelöscht werden und es soll aus der Case-Verzweigung gesprungen werden. Somit müssen die weiteren Cases nicht durch gegangen werden.
Wie kann ich nun das besser programmieren, besser wie komme ich aus der Case-Verzweigung heraus?
Vielleicht habe ich die Struktur und/oder den Ablauf eines Programms noch nicht verstanden!
Laut Simulation werden alle Schritte, die man proggt, doch hintereinander abgearbeitet. Was passiert nun in einer Case-Verzweigung?
@ for_ro
Danke für die tröstenden Worte 
wieso ist ein einzelnes Goto schlechter Programmierstil? Du weißt doch gar nicht, ob sein Programm aus Spaghetti-Code besteht, oder dies eine Notbremse zum Verlassen eines Programmteils ist.
und genau darum geht es!!!!
Wenn die Case-Verzweigung angesprungen wird und die Bedingungen darin nicht erfüllt werden, soll einfach aus der Verzweigung gesprungen werden und die weiteren Programmteile abgearbeitet werden!
Ich hänge noch das gesamte Prog an und bitte!!!! sagt was ich am Stil ändern sollte!
Danke für Eure Hilfen, denn nur so lerne ich es besser und schneller!!!
Lesezeichen