Es algo dificil de Explicar, aqui os pongo el Codigo...
Código:
int numero1, numero2, rondas, signo, error, respuesta=0 ,resultado=0, repeticiones=0, puntuacion=0, porciento; String nombre,a1/*rondas*/, b1/*respuesta*/; long tiempoInicio; float totalTiempo; //Entrada nombre=JOptionPane.showInputDialog("Bienvenido a Entrenador Cerebral.\nPor favor, introduzca su nombre"); a1=JOptionPane.showInputDialog("¿Cuántas rondas desea jugar?"); if ((nombre.equals("")) && (a1.equals(""))); { do { nombre=JOptionPane.showInputDialog("No ha introducido bien su nombre ó el numero de rondas.\nPor favor, introduzca su nombre"); a1=JOptionPane.showInputDialog("¿Cuántas rondas desea jugar?"); } while ((nombre.equals("")) || (a1.equals(""))); } rondas=Integer.parseInt(a1); //Proceso tiempoInicio = System.currentTimeMillis(); //esto va antes del switch do { //Generacion de Numeros Aleatorios numero1=(int)(Math.random()*10); numero2=(int)(Math.random()*10); signo=(int)(Math.random()*4); switch(signo) { case 0: b1=JOptionPane.showInputDialog("Resultado de: "+numero1+"+"+numero2+"= ?"); respuesta=Integer.parseInt(b1); resultado=numero1+numero2; break; case 1: b1=JOptionPane.showInputDialog("Resultado de: "+numero1+"-"+numero2+"= ?"); respuesta=Integer.parseInt(b1); resultado=numero1-numero2; break; case 2: b1=JOptionPane.showInputDialog("Resultado de: "+numero1+"x"+numero2+"= ?"); respuesta=Integer.parseInt(b1); resultado=numero1*numero2; break; case 3: numero2=(numero2+1); b1=JOptionPane.showInputDialog("Resultado de: "+numero1+"/"+numero2+"= ?"); respuesta=Integer.parseInt(b1); resultado=numero1/numero2; break; } repeticiones++; if (respuesta==resultado) { puntuacion++; } } while (rondas!=repeticiones); totalTiempo = (System.currentTimeMillis() - tiempoInicio)/1000f; //esto va al acabar el switch porciento=((puntuacion*100)/rondas); JOptionPane.showMessageDialog(null,"Bueno "+nombre+" tu puntuacion ha sido del "+porciento+"%"); JOptionPane.showMessageDialog(null,"Tu tiempo ha sido de: " + totalTiempo + " segundos"); //esto va justo al final
En lo que me quiero centrar es en esto:
if ((nombre.equals("")) && (a1.equals("")));
{
do
{
nombre=JOptionPane.showInputDialog("No ha introducido bien su nombre ó el numero de rondas.\nPor favor, introduzca su nombre");
a1=JOptionPane.showInputDialog("¿Cuántas rondas desea jugar?");
}
while ((nombre.equals("")) || (a1.equals("")));
}
Estoy comparando las String Introducidas por el usuario, de forma de que cuando este deje el cuadro (la respuesta) vacia te indique que esta mal y que la repita, es decir, que repitas el bucle. Es decir, a ver si me explico bien...
Se ejecuta el programa, te pide dos datos, tu nombre y un numero , y quiero hacer lo siguiente:
(Nombre=true && numero=false) es falso, y te dice que esta mal.
(nombre=false && numero=true) es falso, y te dice que esta mal.
(nombre=false && numero=false) es falso, y te dice que esta mal.
El problema viene aqui cuando (nombre=true && numero=true) te devolveria verdadero, peero el problema viene cuando al ser verdadero y comparalo con "nada" (una string vacia String=""); se peta y me dice que esta mal.
Esto es proque sí puedo poner algo que se corresponda con una cadena vacia (String="") pero en cambio no puedo meter algo en una String que signifique "todo" con la que pueda comprarlo.
No se si me entendeis, pero no me sale, si alguien tiene una idea o algo que me lo diga por favor, estoy algo pilladito por eso.. u.u
Pues nada mas, si necesitan alguna aclaracion o algo, diganmelo e intentare explicarme mejor, un saludo y Gracias!