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