Condición para detenerse para bucle

Este pequeño programa no supera el resultado esperado. ¡Eche un vistazo y vea si puede ayudar por favor!

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    String numInput;

    // Declaring and initializing answer variable to an empty string.
    String answer = "";

    // Declaring and initializing the 2d array "number".
    String number[][] = {
            { "10", "20", "30" },
            { "15", "25", "35" }, };

    System.out.print("\n");

    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 3; j++) {
            System.out.print("\t" + number[i][j] + " ");
        }
        System.out.println("\n");
    }

    boolean found = false;
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 3; j++) {
            System.out.print("\n\tEnter a Number : ");

            // Expected input 10 or 15
            numInput = input.nextLine();

            // number on first line, first column.
            if (numInput.equals(number[i][0])) {
                found = true;
                System.out.print("\n\tNumber " + numInput + " found");
                System.out.print(" on line " + i + " colum " + j); 
            } 

            if (!found) {
                    System.out.print("\n\tNumber not found");
            }
        }
    }
}

Se supone que toma la entrada del usuario y la compara con los datos de la matriz (solo la primera columna). Pero solo lo hace por el primer número en la primera columna

Respuesta 1

Eso es porque haces input.nextLine para cada número en tu matriz. Debe completar numInput fuera de esos 2 bucles. Al igual que:

Scanner input = new Scanner(System.in);

String numInput;

// Declaring and initializing answer variable to an empty string.

String answer = "";

// Declaring and initializing the 2d array "number".

String number[][] = {

        { "10", "20", "30" },

        { "15", "25", "35" }, };

System.out.print("\n");

for (int i = 0; i < 2; i++) {

    for (int j = 0; j < 3; j++) {

        System.out.print("\t" + number[i][j] + " ");
    }

    System.out.println("\n");
}

boolean found = false;
System.out.print("\n\tEnter a Number : ");
numInput = input.nextLine();

for (int i = 0; i < 2; i++) {

    for (int j = 0; j < 3; j++) {            

        // number on first line, first column.

        if (numInput.equals(number[i][0])) {

            found = true;

            System.out.print("\n\tNumber " + numInput + " found");

            System.out.print(" on line " + i + " colum " + j);


            } 

        if (!found) {

                System.out.print("\n\tNumber not found");

        }
    }
}
}
Respuesta: 2

Necesito crear una aplicación con una sola ventana y sin ventanas emergentes. Todo funciona usando la misma ventana y solo cambiando el contenido. Voy a crear una aplicación usando swing. He leído ...

¿Cómo puedo obtener una cadena del cuerpo Flow.Publisher <Byte>? Solo quiero analizar la cadena desde Publisher.

¿Es posible encontrar una instancia de objeto utilizando un método público estático que espera un objeto de campo como parámetro? Eso es lo que busco: public class Foo {private Bar myObject; público estático ...

Tener el siguiente código scratch: public static void main (String [] args) lanza ExecutionException, InterruptedException {CompletableFuture <Void> process1 = CompletableFuture.runAsync (() - & ...