The ifs do not work as I want. Sometimes they show the message correctly, but almost always show nothing [closed]

-1
import java.util.Random;

import javax.swing.JOptionPane;

public class Video30_Adivina_numero {

    public static void main(String[] args) {

    int numeroRandom = (int) (Math.random()*100);

    JOptionPane.showMessageDialog(null, "\tBienvenido a adivina el número.\nUsted deberá adivinar un número del 1 al 100 generado "
            + "aleatoriamente en la menor cantidad de intentos posible.");

    int opcion;

    boolean salir = false;


        do {
            opcion = Integer.parseInt(JOptionPane.showInputDialog("Seleccione una opción digitando el número correspondiente.\n1.Adivinar\n2.Salir"));


                switch (opcion) {

                case 1: //Adivinar


                    int numeroIntentos = 0;

                    int numeroRecibido = 0;

                    int diferenciaMayorNumero = numeroRandom - numeroRecibido, diferenciaMayorRecibido= numeroRecibido - numeroRandom;

                    do {

                        numeroRecibido = Integer.parseInt(JOptionPane.showInputDialog("Digita el número que crees que es."));


                        if (numeroRecibido == numeroRandom) 
                        {
                            JOptionPane.showMessageDialog(null, "¡¡¡¡Has acertado!!!!\n"+"Número de intentos: "+numeroIntentos );
                            if (numeroIntentos <=5) JOptionPane.showMessageDialog(null,"¡Eres un crack en este juego! Lo lograste en 5 intentos o menos.");

                        } 

                        else if (numeroRandom > numeroRecibido)
                        {

                        numeroIntentos++;

                        if (diferenciaMayorNumero >= 50) JOptionPane.showMessageDialog(null, "Incorrectísimo. No sea miserable, súbale un montón.");

                        else if (diferenciaMayorNumero >= 20) JOptionPane.showMessageDialog(null, "Incorrecto. Sea tacaño, le falta subir bastantico");

                        else if (diferenciaMayorNumero >= 10) JOptionPane.showMessageDialog(null, "Incorrecto. Pero ya casi compa, suba.");

                        else if (diferenciaMayorNumero >= 1) JOptionPane.showMessageDialog(null, "Incorrecto. UYYYY rata, casi casi. Súbale ahí.");

                        }//else if 1

                        else if (numeroRecibido > numeroRandom) 
                        {

                        numeroIntentos++;

                        if (diferenciaMayorRecibido >= 50) JOptionPane.showMessageDialog(null, "Incorrectísimo. Se la voló. El número no es tan big.");

                        else if (diferenciaMayorRecibido >= 20) JOptionPane.showMessageDialog(null, "Incorrecto. Bastantito volado, intente más abajito.");

                        else if (diferenciaMayorRecibido >= 10) JOptionPane.showMessageDialog(null, "Incorrecto. Intenta un poco más pa'bajo");

                        else if (diferenciaMayorRecibido >=1) JOptionPane.showMessageDialog(null, "Incorrecto. Intenta un pelín más pa'bajo");


                        } //else if 2

                        else if (diferenciaMayorNumero ==0 && diferenciaMayorRecibido ==0)JOptionPane.showMessageDialog(null,"¡¡Felicidades!!");//else if 3



                    }while(numeroRecibido != numeroRandom);


                break;//Lo quito para que siempre muestre el marcador al final


                case 2: //Salir

                JOptionPane.showMessageDialog(null,"Gracias por jugar.");

                salir = true;

                break;

                default:
                    JOptionPane.showMessageDialog(null, "Opción incorrecta");

                }//switch


        }while (salir == false);


}//main


}//class
    
asked by Isaac Miranda Madrigal 21.12.2018 в 20:46
source

1 answer

0

I have noticed that if the number in both if the number is greater and if it is lower , you have the same, that is, in all if you are evaluating typed is less than the number to guess

For the same reason when the number entered is greater than the number to guess if they do not work

For the same reason, you would have to modify your code if diferenciaMayorNumero >= 50 with the sign of greater, as the following:

else if (numeroRecibido > numeroRandom) 
{
     numeroIntentos++;

     if (diferenciaMayorRecibido <= 50) JOptionPane.showMessageDialog(null, "Incorrectísimo. Se la voló. El número no es tan big.");

      else if (diferenciaMayorRecibido <= 20) JOptionPane.showMessageDialog(null, "Incorrecto. Bastantito volado, intente más abajito.");

     else if (diferenciaMayorRecibido <= 10) JOptionPane.showMessageDialog(null, "Incorrecto. Intenta un poco más pa'bajo");

     else if (diferenciaMayorRecibido <=1) JOptionPane.showMessageDialog(null, "Incorrecto. Intenta un pelín más pa'bajo");

} //else if 2

You tell me how you are doing

    
answered by 21.12.2018 / 23:28
source