scusa se ti rispondo solo ora è che non posso connettermi molte volte.
allora, l'istruzione myvar = !myvar; cambia il valore booleano alla variabile
quando non crei una variabile essa nasce come false;
nel codice che ti ho dato c'è scritto
se myvar == false
allora.....
e infine myvar = true;
in questa maniera restando myvar = true la condizione if non verrà mai più rispettata e il ciclo sarà ogni volta saltato.
Non o capito il tuo ultimo problema scusa. Potresti esser eun po più chiaro ??
Ciao