Java - Ayuda con if y else

 
Vista:

Ayuda con if y else

Publicado por Jose (2 intervenciones) el 05/02/2020 15:21:47
Hola resulta que estoy haciendo un curso de java repasando todo lo que había visto antes. Resulta que la materia de java la reprobe en el primer año u.u y pues la verdad eso me a motivado para estudiar en la vacaciones de verano y cuando la vuelva a ver sea pan comido.

OMITIENDO LO DE ARRIBA creo que estoy haciendo algo mal pero no se que al crear una cadena "if" con otro "if" adentro el "else" siempre se me ejecuta cuando la condición del primer "if" se cumple

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package ejercicio8;
 
import javax.swing.JOptionPane;
 
public class Ejercicio8 {
 
    public static void main(String[] args) {
       int num1,num2;
 
       num1 = Integer.parseInt(JOptionPane.showInputDialog("Ingrese el primer numero"));
       num2 = Integer.parseInt(JOptionPane.showInputDialog("Ingrese el segundo numero"));
 
       if(num1>num2){
           JOptionPane.showMessageDialog(null,num1+" Es mayor que "+num2);
       }
       if(num2>num1){
           JOptionPane.showMessageDialog(null,num2+" Es mayor que "+num1);
       }    else{
           JOptionPane.showMessageDialog(null,"Los numeros son iguales");
       }
 
    }
}


inventando y moviendo cosas me di cuenta que haciendolo de esta otra forma no me da el error de que se ejecutara el "else" pero me gustaria que alguien que sepa me comparta su conocimiento.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package ejercicio8;
 
import javax.swing.JOptionPane;
 
public class Ejercicio8 {
 
    public static void main(String[] args) {
       int num1,num2;
 
       num1 = Integer.parseInt(JOptionPane.showInputDialog("Ingrese el primer numero"));
       num2 = Integer.parseInt(JOptionPane.showInputDialog("Ingrese el segundo numero"));
 
       if(num1>num2){
           JOptionPane.showMessageDialog(null,num1+" Es mayor que "+num2);
       }
       else if(num2>num1){
           JOptionPane.showMessageDialog(null,num2+" Es mayor que "+num1);
       }    else{
           JOptionPane.showMessageDialog(null,"Los numeros son iguales");
       }
 
    }
}
este si me funciona estare a tento a cualquier ayuda gracias
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 pablo
Val: 626
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con if y else

Publicado por pablo (239 intervenciones) el 05/02/2020 16:16:16
Hola José

Pues bien mira bien tu primer ejercicio, como sabrás de sobra todo tiene un orden de ejecución que si no se ve afectado por ninguna función o método siempre será de arriba a abajo.

Pues bien demosle dos valores a tus variables por ejemplo 2 y 1 (por probar el primer caso)

Entonces al momento de colocar usar la lógica del if, evaluamos 2 es mayor que 1 ? sí, por lo tanto entra en el primero y luego evalúa la segunda opcion como en este caso el if no se cumple pasara al else que en una traducción vulgar sería o si no evalúa esto, pero a quien le pertenece ese else al segundo if que colocaste y como esa condición no se cumple la del segundo es decir 1 no es mayor que 2 pues ejecuta el else.

En cambio tu segundo código ya le añadiste más else que van evaluando cada una de las opciones que plantees, entonces tomemos otros valores por ejemplo 3 y 4 por hacer que entre en el segundo if, probamos la lógica y decimos 3 es mayor que 4 ? no, por lo tanto entramos al segundo 4 es mayor que 3? sí por lo tanto entramos a este y como ya cumplió una condición no entrara en el ultimo else que le pertenece a los 2 if, y te preguntarás por que le pertenece? bueno por que este ultimo else actúa como lo ultimo que queda si ninguna de las condiciones que colocaste se cumplen.

Por eso en tu primer código entra en ambos en la del else y la del primer if por que el primer if no tiene un else al cual evaluar si la condición no se cumple.

Y bueno espero me hayas entendido la explicación

Saludos.
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