Dopóki program jest poprawnie napisany, jego wygląd nie ma znaczenia. Oczywiście istotne jest, czy użyte funkcje są zasadne i czy czegoś nie można zrobić prościej.
Na podstawie fragmentu kodu wnioskuję jednak, że cała logika Twojego programu jest wątpliwa. Przede wszystkim Twój program jest nierozszerzalny w prosty sposób. Spróbuj napisać go od nowa inaczej.
Poniżej zakładam, że znasz tablice, ale możesz nie znać klas i obiektów. Jeśli nie znasz tablic, proponuję wymyślić coś innego, prostszego, co będzie miało sens ;)
1. Utwórz "profile" osób w klasie. Stwórz tablicę dwuwymiarową, w której każda komórka będzie przyjmować wartość bool dla konkretnego pytania. Zawartość tablicy stanowi niejako klucz. Każdy wers tablicy zawiera odpowiedzi dla pytań dla konkretnej osoby, tzn. tak lub nie, ale zapisujemy wartości bool, czyli 0 lub 1. Ilość komórek w wersie powinna być wystarczająca do tego, aby każda osoba miała niepowtarzalny klucz. Można też zapisać np. rok urodzenia w tablicy, nie widzę problemu.
2. Przeprowadź wszystkie pytania, wpisując do nowej tablicy jednowymiarowej odpowiedzi użytkownika, odpowiednio wartości bool.
3. Wykonaj w pętli porównanie wartości tablic. Po wykonaniu poprawnego porównania, tzn kiedy odpowiedzi użytkownika zgodzą się z którymś wersem, niech pętla zwróci indeks wersu, w którym wykryto zgodność, np. za pomocą na bieżąco inkrementowanego iteratora.
4. Funkcją switch, której podasz wartość iteratora, zwróć na ekran Imię osoby. Alternatywnie możesz mieć osobną tablicę z imionami, która po prostu zwróci imię znajdujące się pod podanym indeksem. Czyli jeśli pętla sprawdziła, że w wersie o indeksie 4 zgadzają się wszystkie wartości, to program wypisze na ekranie imię osoby z indeksu 4 z tablicy z imionami, czyli np. Donald, albo inny Denis.