es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo hacer que el escáner escanee todos los elementos de una matriz, en Java.

Este es el cuestionamiento: Crea un array de Strings y asigna 5 nombres. Pregunta al usuario cuál es su nombre, si su nombre se encuentra en la lista haz algo creativo. Usa un loop for-each para imprimir todos los nombres en el array, separándolos con un espacio.

Esto es lo que tengo hasta ahora. Una de las dificultades que tengo es que el scanner solo está comparando la entrada con el primer nombre del array y no con los demás.

public static void main(String[] args) {


    String[] nombres = {"Jose", "Alex", "Steven", "Sky", "Ana"};

    Scanner escaner = new Scanner(System.in);
    System.out.println("¿Cuál es tu nombre? ");

    String entrada = escaner.next();

    for (String n:nombres) {
        if (n.equalsIgnoreCase(entrada)) {
            System.out.print("¡Hurra! ¡Tienes muchas probabilidades de encontrar un llavero con tu nombre! =) ");
        }


        else { 
            System.out.print("¡Bienvenido al exclusivo club de nombres raros! =D " );
            System.out.print(nombres + " ");

            }
        break;

        }
    }
}

Siéntete libre de comentar cualquier otro problema que veas. Soy nuevo en esto y agradecería cualquier comentario. Gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Hay un par de problemas en el código:

    1. En el bloque else, estás intentando imprimir todo el array de names en lugar del nombre actual n. Deberías reemplazar “System.out.print(names + ” “);” con “System.out.print(n + ” “);”
    2. La declaración break está haciendo que el bucle for salga después de verificar el primer elemento del array, por lo que solo está comparando la entrada de usuario con el primer nombre. Deberías mover la declaración break dentro del bloque if, para que solo salga del bucle si encuentra una coincidencia.

    Este es el código actualizado:

    public static void main(String[] args) {
    
        String[] names = {"Jose", "Alex", "Steven", "Sky", "Ana"};
    
        Scanner scan = new Scanner(System.in);
        System.out.println("¿Cuál es tu nombre? ");
    
        String input = scan.next();
    
        for (String n : names) {
            if (n.equalsIgnoreCase(input)) {
                System.out.print("¡Hurra! ¡Tus posibilidades de encontrar un llavero con tu nombre son altas! =) ");
                break;
            } else {
                System.out.print("¡Bienvenido al club de los nombres raros! =D ");
                System.out.print(n + " ");
            }
        }
    }
    

    Este código debería imprimir un mensaje de bienvenida para los nombres que no estén en el array, y un mensaje especial para los nombres que coincidan. También debería imprimir todos los nombres del array.

Comments are closed.