Ja zrobiłem to w ten sposób, że nie tworzyłem osobnej funkcji na menu, lecz wprowadziłem zmienną-strażnika.
Posłużyłem się tu zmienną typu bool, która zwraca tylko wartości true (zmienna==1) lub false (zmienna==0).
Żeby to w miarę obrazowo przedstawić:
1) Na początku wprowadzam zmienną: bool sprawdzam_poprawnosc; i nadaję jej domyślną wartość 0, czyli fałsz.
2) Następnie switch'a zamykam w pętli do {...} while(); a jako warunek while'a wstawiam mojego strażnika poprawności.
W ten sposób switch będzie się powtarzał, dopóki moja zmienna pilnująca (sprawdzam_poprawnosc) nie zmieni się na 1 (true), a w przypadku nieposłuszeństwa i wprowadzenia opcji której nie ma w menu, np. "7", "-12" lub "przypadkowy znak" program wypisywać będzie na ekranie twój komunikat z default ("Wybierz ponownie klawisz z listy...") i robił to nieustannie dopóki nie podasz jakiejś możliwej opcji (1,2,3,4 lub 5).
Teraz zastanów się w jakim przypadku i w których liniach kodu musisz zmienić zmienną sprawdzam_poprawnosc na 1 (true).
Rozwiązanie nieco bardziej banalne, lecz jeśli jesteś początkujący i nie znasz się jeszcze na tworzeniu nowych funkcji w programie to właśnie w ten sposób możesz to obejść.
Daj znać jeśli masz jakieś pytania odnośnie do mojego rozwiązania. Mogę wrzucić kilka linijek przykładowego kodu