Aguja de matriz en el pajar

Tengo una tarea para crear una matriz int que se encuentra en otro método para un valor int de entrada del usuario y luego muestra el índice de ese elemento en la matriz. Tengo esa parte funcionando bien y personalmente elegí hacer que los elementos en la matriz sean valores aleatorios del 1 al 10. También necesito que el programa muestre un mensaje ("Elemento no encontrado en la matriz") en caso de que número no está en la matriz. Parece que no puedo hacer que esta parte funcione correctamente y espero poder obtener algunos consejos aquí.

import java.util.Scanner;

public class NeedleInHaystack {

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

    System.out.println("Please provide an Integer for the needle: ");
    int needle = scan.nextInt();
    int[] haystack = new int[10];

    System.out.println("The array being used is: ");

    for (int i = 0; i < 10; i++) {
        int j = (int) (Math.random() * 9 + 1);
        haystack[i] = j;
        System.out.print(haystack[i] + " ");
    }

    returnIndex(haystack, needle);

}

public static int returnIndex(int[] haystack, int needle) {
    int index = needle;
    System.out.println("\nThe needle is found at index: ");

    for (int i = 0; i < haystack.length; i++) {
        if (haystack[i] == index) {
            System.out.println(i);
        }
    }

    return index;
 }

}

El programa es una aguja int en una matriz de hastack. ¿Cuál es la mejor manera de hacer que el programa finalice "con gracia" en caso de que el valor de entrada no esté presente en la matriz aleatoria?

La asignación estaba redactada de la siguiente manera: "Cree un programa Java con un método que busque en un conjunto de enteros un valor entero especificado (consulte la ayuda para iniciar el encabezado del método a continuación). Si el conjunto contiene el entero especificado, el método debería devolver su índice en la matriz. Si no, el método debe arrojar una excepción que indique "Elemento no encontrado en la matriz" y finalizar con gracia. Pruebe el método en main con una matriz que realice y con la entrada del usuario para la "aguja".

Respuesta 1

Podría agregar algún tipo de booleanindicador en el método que establezca en verdadero si se encuentra. Si no, la bandera seguirá siendo falsa. Después de recorrer la matriz, puede verificar si el indicador es falso y, de ser así, puede imprimir algún mensaje de error.

public static int returnIndex(int[] haystack, int needle) {

    boolean found = false;

    int index = needle;
    System.out.println("\nThe needle is found at index: ");

    for (int i = 0; i < haystack.length; i++) {
        if (haystack[i] == index) {
            System.out.println(i);
            found = true;
        }
    }

    if (found) return index;

    else  {

        System.out.println("Not found.");
        return null;

    }


 }

}
Respuesta: 2

El problema radica en que for-loopestá comprobando la needlematriz de entrada pero no la devuelve, y también porque la ha asignado int index = needle;al principio, aunque si la aguja no está en la matriz, devolverá la aguja

Entonces, en ese caso, asigne index=0al principio e itere la matriz, si se encuentra, devuelva el indexresto devuelva elneedle

public static int returnIndex(int[] haystack, int needle) {
int index;
System.out.println("\nThe needle is found at index: ");

for (index = 0; index < haystack.length; index++) {
    if (haystack[index] == needle) {
      System.out.println("value found at index"+index);
        return index;
    }
   }
   System.out.println("The value not found in array");

   return needle;;
}
Respuesta: 3

He estado trabajando en una ventana de diálogo para una aplicación de escritorio que estoy desarrollando actualmente. El cuadro de diálogo debe tener un número predeterminado de campos de texto (en otras palabras, variable), pero encontré un error extraño ...

Error Mis códigos Hice un programa que pregunta el nombre completo, la dirección, etc. Quiero que el programa detecte si dos nombres completos son iguales. Ya tengo la instrucción if else que detecta si el nombre completo es el mismo ...

He generado una clase de usuario que incluye el nombre y el apellido. Quiero preguntar cómo puedo generar diferentes nombres aleatorios usando el generador aleatorio. import java.util.ArrayList; importar ...

Quiero enviar trabajos de Spark de jarra por lotes utilizando la API programática livy, como usar lotes de API de descanso, tengo los datos json {"className": "org.apache.spark.examples.SparkPi", "queue": "default",. ..