Então, eu estou criando um método para criar uma linha de saudação com base em duas pessoas de um banco de dados.
Existem quatro parâmetros: os dois nomes ( name1
e name2
) e os dois sexos ( gender
e gender2
).
Para cada combinação de gênero, tenho um tipo de saída diferente.
Por exemplo: se o gênero 1 for M
(homem) e o gênero 2 também M
, a saída deve ser algo como:
Dear Sir name1 and Sir name2,
No momento, meu switch fica assim:
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.
}
Observe que tenho várias opções de gênero, como 'R'
por "Dear Relation"
e mais algumas que não tenho tempo para traduzir.
Como posso reduzir essa declaração de chave dupla?
Colocar a segunda opção em um método não é uma opção, porque também existe um caso em que os dois nomes são iguais e, em seguida, a saída deve ser combinada como: "Dear Sir and Madame name1,"
gender1+gender2
.
Madam
, não Madame
. Madame
é a forma francesa.