Así que estoy haciendo un método para crear una línea de saludo basada en dos personas de una base de datos.
Hay cuatro parámetros: los dos nombres ( name1
y name2
) y los dos géneros ( gender
y gender2
).
Para cada combinación de género, tengo un tipo de salida diferente.
Por ejemplo: si el género 1 es M
(hombre) y el género 2 también M
, el resultado debería ser algo como:
Dear Sir name1 and Sir name2,
En este momento, mi interruptor se ve así:
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.
}
Tenga en cuenta que tengo varias opciones de género, como 'R'
for "Dear Relation"
y algunas más que no tengo tiempo para traducir.
¿Cómo puedo reducir esta declaración de doble interruptor?
Poner el segundo interruptor en un método no es una opción porque también hay un caso en el que ambos nombres son iguales y luego la salida debe combinarse como: "Dear Sir and Madame name1,"
gender1+gender2
.
Madam
, no Madame
. Madame
es la forma francesa