Java - Error validando

 
Vista:
sin imagen de perfil

Error validando

Publicado por Oscar (8 intervenciones) el 04/12/2015 23:45:36
hola soy un poco nuevo y necesito ayuda con el codigo, el codigo es de un sistema de facturacion contenido en un JPanel, si ingreso los datos del producto entonces se me cumple el if(busqueda).. y todo marcha bien, pero si limpio todos los campos de texto y ingreso otro producto entonces se valida el de nuevo el producto anteriormente ingresado y el nuevo.. por lo que me aparece dos veces "el codigo existe"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
boolean busqueda = false;
	String T = "";
	for (Productos pp : DB) {
 
		if (pp.getCodigo().equalsIgnoreCase(CodigoP)) {
 
			busqueda = true;
			T = pp.getPventa();
 
 
		}
 
		if (busqueda) {
			JOptionPane.showMessageDialog(null, "El codigo existe.");
			txtTotal.setText(T);
 
 
		} else {
			JOptionPane.showMessageDialog(null, "El codigo NO existe.");
		}
	}
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jordi

Error validando

Publicado por Jordi (1 intervención) el 05/12/2015 12:56:03
El problema es que una vez búsqueda = true, se queda siempre a true. Una vez entras en if(busqueda), tienes que hacer lo que quieras hacer y al finalizarlo, volver a dejar el booleano a false para la siguiente iteración.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
boolean busqueda = false;
String T = "";
for (Productos pp : DB) {
	if (pp.getCodigo().equalsIgnoreCase(CodigoP)) {
		busqueda = true;
		T = pp.getPventa();
	}
	if (busqueda) {
		JOptionPane.showMessageDialog(null, "El codigo existe.");
		txtTotal.setText(T);
		busqueda = false; // Te falta dejarlo a false de nuevo!
	} else {
		JOptionPane.showMessageDialog(null, "El codigo NO existe.");
	}
}

O más sencillo, también puedes pasar de crear un booleano y dejarlo todo en el mismo if, así sólo se realiza la comprobación una vez.

1
2
3
4
5
6
7
8
9
10
11
String T = "";
for (Productos pp : DB) {
	if (pp.getCodigo().equalsIgnoreCase(CodigoP)) {
		T = pp.getPventa();
		JOptionPane.showMessageDialog(null, "El codigo existe.");
		txtTotal.setText(T);
	}
	else {
		JOptionPane.showMessageDialog(null, "El codigo NO existe.");
	}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar