Goto hat bis auf sehr wenige, sehr spezielle Ausnahmen in einem Programm nichts verloren

dachte mir das das kommt.
im original Programm wurde die if bedingung durch return 0 beendet, das hat mich aber unerwarteter weise nicht an den anfang von while geworfen, sondern wohl an den anfang der ganzen funktion. wusste nicht wie ich das ohne große änderungen hinbekomme und auf den ersten blick scheint es zu funktionieren.
Das macht nicht was du denkst:
Code: [Select]
if (taste == 'A' || 'B' || 'C' || 'D' || '*' || '#' || '0' || '1' || '2' || '3' || '4' || '5' || '6' || '7' || '8' || '9')
Hab im inet grade nur das gefunden:
this is c++, the conditions will all be checked until the first one fails the condition, and then it will fall out.
heisst das sobald eine taste "nicht true" ist beendet die if funktion? geht aber irgendwie...
im zweiten case habe ich die ganzen tastenabfragen weggelassen, war mir aber nicht sicher ob man
sich damit nicht irgendwelche undefinierten zustände einfängt. wäre diese Methode besser?
Kannst ja mal zum Spass eine LED diese 8 Sekunden lang leuchten lassen. Das wäre dann der Zustand, in dem die Zusatz-Taste gültig wäre.
wenn die zeit in while unter 10 sek. ist, spingt die funktion dann nach:
char taste = keypad.getKey();
if (!taste) goto label3; // keine Taste gedrückt, kann nicht gültig sein
Serial.println("Fall 2");
if (taste)
und bleibt da hängen?
würde do while() gehen?
... und wenn du schon mit millis() arbeitest (sehr schön), solltest du dir auch while - Schleifen abgewöhnen, damit es einfacher wird.
generell keine while schleifen? warum das?
apropos millis(): laufe ich in Probleme nach 50 tagen oder gehts einfach von vorne los?
ist unsigned long lang genug?