Quindi sto creando un metodo per creare una linea di saluto basata su due persone da un database.
Esistono quattro parametri: i due nomi ( name1
e name2
) e i due sessi ( gender
e gender2
).
Per ogni combinazione di genere, ho una sorta di output diverso.
Ad esempio: se il genere 1 è M
(man) e anche il genere 2 M
, l'output dovrebbe essere simile a:
Dear Sir name1 and Sir name2,
In questo momento, il mio interruttore è simile al seguente:
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.
}
Nota che ho più opzioni di genere, come 'R'
per "Dear Relation"
e alcune altre che non ho il tempo di tradurre.
Come posso ridurre questa doppia istruzione switch?
Mettere il secondo switch in un metodo non è un'opzione perché c'è anche un caso in cui entrambi i nomi sono uguali e quindi l'output deve essere combinato come: "Dear Sir and Madame name1,"
gender1+gender2
.
Madam
non lo è Madame
. Madame
è la forma francese.