Knappsatsen ingång validering med statliga maskin programmering (6 / 7 steg)
Steg 6: Lägg ihop allt...
- Lägg till hjälpare funktioner och minimal logik på switch rapporter (påstår)
- Go stat efter stat efter stat diagram ovanstående regler
Switch(State) {
fall INITIAL:
X
IF(validKeys0to9(Key)) {
POS = displayKey (nyckel, pos);
storeKey(key);
State = värde1;
} annat {
invalidFormat();
}
bryta;
fall värde1:
XX
IF(validKeys0to9(Key)) {
POS = displayKey (nyckel, pos);
storeKey(key);
State = värde2;
} else om (validAtSign(key)) {
// X@
POS = displayKey (nyckel, pos);
State = ATSIGN;
} annat {
invalidFormat();
}
bryta;
fall värde2:
XX @
IF(validAtSign(Key)) {
POS = displayKey (nyckel, pos);
storeKey(key);
State = ATSIGN;
} annat {
invalidFormat();
}
bryta;
fall ATSIGN:
X HH
IF(validKeys0to9(Key)) {
POS = displayKey (nyckel, pos);
storeKey(key);
State = HOUR1;
} annat {
invalidFormat();
}
bryta;
fall HOUR1:
X XX
IF(validKeys0to9(Key)) {
POS = displayKey (nyckel, pos);
storeKey(key);
State = HOUR2;
} else om (validColon(key)) {
X XX
POS = displayKey (nyckel, pos);
State = kolon;
} annat {
invalidFormat();
}
bryta;
fall HOUR2:
X XX
om (validColon(key)) {
X XX
POS = displayKey (nyckel, pos);
State = kolon;
} annat {
invalidFormat();
}
bryta;
fall kolon:
X XX
IF(validKeys0to5(Key)) {
POS = displayKey (nyckel, pos);
storeKey(key);
State = MIN1;
} annat {
invalidFormat();
}
bryta;
fall MIN1:
X XX
IF(validKeys0to9(Key)) {
POS = displayKey (nyckel, pos);
storeKey(key);
State = MIN2;
} annat {
invalidFormat();
}
bryta;
fall MIN2:
X XX
IF(validPoundSign(Key)) {
POS = displayKey (nyckel, pos);
storeKey(key);
State = EXECUTE;
} annat {
invalidFormat();
}
bryta;
fall klart:
clearAll();
bryta;
standard:
bryta;
} / / Växla
- Go stat efter stat efter stat diagram ovanstående regler