Sinceramente vedo una variabile contatore che non viene ne inzializzata e ne modificata. Cmq il tuo codice è di difficile lettura.