No encuentro el fallo (Java)

estoy desarrollando un programita sencillo que identifique la documentación y te diga qué tipo es. Lo hago recorriendo dos arrays y haciendo las comprobaciones con unos if, pero haga lo que haga el último if machaca el valor de los demás, paso el código:

            // creo dos arrays donde pongo los valores permitidos             char[] fisica = { '0', '1', '2', '3', '4', '5', '6', '7', '8',                     '9', 'K', 'L', 'M', 'X', 'Y', 'Z' };             char[] juridica = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',                     'J', 'N', 'P', 'Q', 'R', 'S', 'U', 'V', 'W' };             // recorro los arrays para saber que tipo de persona es             for (i = 0; i < fisica.length; i++) {                 if (fisica[i] == documentacion.charAt(0)) {                     descripcion = "Españoles con DNI";                 }                 //.....aqui van mas if                 if (fisica[i] == documentacion.charAt(0)) {                     descripcion = "Letra reservada para cuando se agoten los 'Y' para Extranjeros identificados por la Policía con un NIE";                 }             }             for (i = 0; i < juridica.length; i++) {                 if (juridica[i] == documentacion.charAt(0)) {                     descripcion = "Sociedades anónimas";                 }                 //....aqui van mas if                 if (juridica[i] == documentacion.charAt(0)) {                     descripcion = "Establecimientos permanentes de entidades no residentes en España";                 }             } 

Me reconoce si es persona física o jurídica, pero sólo guarda los últimos valores asignados en el if de cada bucle. Gracias de antemano.