Dal punto di vista sintattico va bene (non ci sono errori di compilazione e te ne sarai accorto anche da solo, compilando il codice).
Ma dal punto di vista della logica del programma, non so se è corretto (se fa quello che pensi) perché non ho avuto tempo e modo di esaminare la logica di tutto il resto del codice.