Uwaga, mój komentarz to wytłumaczenie jak zrobić, a nie gotowy kod.
Wystarczy że zawartość maina wrzucisz w pętlę while(true) {}. Czyli Twój nowy main to będzie pętla while(true), a w niej cały dotychczasowy kod w mainie. I to tyle. Program wystartuje tak samo, zacznie od maina, wejdzie do pętli, dalszy przebieg będzie taki sam jak dotychczas, dojdzie do końca i wykona się kolejny obieg w pętli - w nieskończoność, ponieważ warunkiem pętli jest stała wartość true. Ponadto, jeśli chciałbyś zrobić wychodzenie z pętli czyli powiedzmy kończyć program, wystarczy że w pętli, za każdym razem gdy się zaczyna obieg pętli, tam gdzie sprawdzasz swoje opcje w menu, dodać kolejną opcje wychodzenia z programu. Czyli wedle twojego wzorca dodać "Wybierz 3 aby wyjść", sprawdzić potem w warunkach czy jest to opcja 3, jeśli tak to zrobić przerwanie pętli instrukcją break; która przerwie wykonywanie bloku pętli i pójdzie w miejsce które jest za pętlą, a tam już program zaczyną się kończyć. Rozumiesz?