Esce dal ciclo While non appena ricontrolla la condizione (!ricercaAvviata)

quindi il tuo programma esegue :

ricercaAvviata = true;
tornaMenuPrincipale = true;

esce dall'if, salta l'else, esegue tutte le istruzioni presenti fino al '}' del ciclo while.
Dopodichè torna a controllare la condizione dello while ed esce (poichè ricercaAvviata=true).

spero di essere stato chiaro....