Vous pouvez implémenter des transitions d'état simples avec une variable d'état unique, par exemple si vous voulez parcourir les états start-> part1-> part2-> end, vous pouvez utiliser une énumération pour garder une trace de l'état actuel et utilisez une instruction switch pour le code que vous voulez exécuter dans chaque état.
enum state { start=1, part1, part2, end} mystate;
// ...
mystate = start;
do {
switch (mystate) {
case start:
// ...
case part1:
// ...
case part2:
// ...
if (part2_end_condition) mystate = end; // state++ will also work
// Note you could also set the state back to part1 on some condition here
// which creates a loop
break;
}
} while (mystate != end);
Pour les transitions d'état les plus complexes qui dépendent de plusieurs variables, vous devez utiliser des tables/tableaux comme celui-ci:
var1 var2 var_end next_state
0 0 0 state1
0 1 0 state2
1 0 0 state3
1 1 0 state4
-1 -1 1 state_end // -1 represents "doesn't matter" here
qui http: //en.wikipedia. org/wiki/Dragon_book? –
Vous devez nous donner un peu plus pour continuer. Quel aspect de la mise en œuvre des transitions d'état trouvez-vous difficile? –
Pourquoi n'utilisez-vous pas LEX? – qrdl