Problema con ciclo if [Java]

Iniciado por S4ms3pi0l__, 6 Febrero 2018, 22:56 PM

0 Miembros y 1 Visitante están viendo este tema.

S4ms3pi0l__

Al encontrar el nombre que estoy buscando, además de enviarme el mensaje de que ha sido encontrado, también muestra en pantalla el mensaje de que no ha sido encontrado. Esto sucede cuando el programa busca posición por posición, o sea, si el nombre está en la posición 2, primero muestra el mensaje de que no ha sido encontrado, luego que sí y en el resto de posiciones que no. Sólo quiero que el programa muestre los mensajes una vez.

Código (java) [Seleccionar]


package ejemplostring;
import java.util.Scanner;
import javax.swing.JOptionPane;

public class EjemploString {

    public static void main(String[] args) {
        // TODO code application logic here
        Scanner in = new Scanner(System.in);
        String[] ID = new String[5];
        String x;
        for(int i=0;i<ID.length;i++){
            System.out.print("Ingrese un nombre #"+i+": ");
            ID[i] = in.next();
        }
        for(int i=0;i<ID.length;i++){
            System.out.println("Nombres: "+ID[i]);
        }
        x = JOptionPane.showInputDialog("Ingrese el nombre que busca");
        for(int i=0;i<ID.length;i++){
            if(x.equals(ID[i])){
                JOptionPane.showMessageDialog(null, "Nombre: "+ID[i]);
            }else{
                JOptionPane.showMessageDialog(null, "No encontrado");
            }
        }
    }
   
}

Serapis

Está claro que no entiendes lo que tienes escrito, de otro modo, sabrías lo que tienes que hacer...

Elimina esta sección del código:
Código (java) [Seleccionar]
}else{
                JOptionPane.showMessageDialog(null, "No encontrado");


...pero todavía si existiera más veces, saldría el mensaje más veces...
Si solo quieres que lo muestre una vez, o bien cuando lo localice sales del bucle, o bien cuentas cuantas veces aparece y tras el bucle, resumes: "Encontrado x veces", donde x es la cuenta... incluso 0.


Fenrir_01


el problema que tiene seguro es que dentro del array (campos) introduces cualquier nombre, luego lo buscas y no te sale de esas forma.
En el código del buscador es donde esta el problema....
porque tenes que ir buscando por todos los (campos )del array usando una estructura while...

Es exactamente el problema que tengo yo.

Si lo pudiste resolver contarme yo estoy con ese problema.