Dlatego tworzę metodę tworzenia linii powitania opartej na dwóch osobach z bazy danych.
Istnieją cztery parametry: dwie nazwy ( name1
i name2
) oraz dwie płcie ( gender
i gender2
).
Dla każdej kombinacji płci mam coś innego.
Na przykład: jeśli płeć 1 to M
(mężczyzna) i płeć 2 również M
, wynik powinien wyglądać następująco:
Dear Sir name1 and Sir name2,
W tej chwili mój przełącznik wygląda następująco:
switch(gender1){
case 'M':
switch(gender2){
case 'M': printf("Dear Sir %s and Sir %s", name1, name2); break;
case 'W': printf("Dear Sir %s and Madame %s", name1, name2); break;
case 'R': ...
}
break;
case 'W':
switch(gender2){
case 'M': printf("Dear Madame %s and Sir %s", name1, name2); break
case 'W': printf("Dear Madame %s and Madame %s", name1, name2); break;
case 'R': ...
}
break;
case ...etc.
}
Zauważ, że mam wiele opcji związanych z płcią, jak 'R'
dla "Dear Relation"
a niektóre bardziej, że nie mają czasu na tłumaczenie.
Jak mogę zmniejszyć tę instrukcję podwójnego przełączania?
Umieszczenie drugiego przełącznika w metodzie nie jest opcją, ponieważ istnieje również przypadek, w którym obie nazwy są takie same, a następnie dane wyjściowe należy połączyć w następujący sposób: "Dear Sir and Madame name1,"
gender1+gender2
.
Madam
nie jest Madame
. Madame
jest francuską formą.