lunes, 27 de mayo de 2019

Condicionales en Java I - El condicional if - else[Sintaxis y ejemplos]

Condicionales en Java I - El condicional if - else

Java condicional if

En Java tenemos dos condicionales, if y switch. En este post veremos el condicional if y en el siguiente switch.

El condicional if

El condicional if necesita que se le especifique una condición, si esta es verdadera (true), se ejecuta el código de su interior, si es falsa (false) no se ejecuta nada.

Opcionalmente tenemos la opción de añadirle un else con el que especificar un código a ejecutar en caso de que la condición sea false.

Ejemplos prácticos con el condicional if

En el siguiente ejemplo voy a utilizar la clase Scanner que pertenece al paquete java.util, por lo que deberás importarla si quieres probar este código (import java.util.Scanner;).
Este código empieza a ser más complejo que lo que he mostrado hasta ahora, pero no te asustes, es más sencillo de lo que pueda parecer.
La clase Scanner es para aceptar entradas, mientras que print o println utilizan out (salida) para mostrar algo en la pantalla, el cometido del in (entrada) es recoger datos de entrada para almacenarlos en variables. De ahí viene el (System.in) del código.
Con System.out.println("Introduce tu edad"); Imprimo en pantalla dicha frase. 
Después con la variable "edad" se almacena el valor que el usuario introducirá en la consola. edad = introducir (la consola espera a que el usuario introduzca un valor y presione la tecla enter (intro)), nextInt almacena en la variable edad el valor numérico introducido por el usuario.
Para acabar, si el usuario tiene menos de 18 años, le muestra el mensaje del if, si tiene 18 o más imprime el mensaje del else.


import java.util.Scanner;

public class condicional_if {

   public static void main(String[] args) {

       Scanner introducir=new Scanner(System.in);
       
       System.out.println("Introduce tu edad");
       
       int edad=introducir.nextInt();

       if(edad<18) {
 
       System.out.print("No puedes entrar al sitio, solo tienes " + edad + " años.");

       }
 
       else {

       System.out.print("Puedes entrar al sitio, tienes " + edad + " años.");

       }
       
       
     }
}

Resultado
En la consola me sale este mensaje. Está esperando a que le introduzca un número (int).
Introduce tu edad
Le introduzco la edad y me devuelve el resultado esperado:
Puedes entrar al sitio
Si le introduzco menos de 18, me dice que no puedo entrar al sitio:
No puedes entrar al sitio
¿Qué pasa si introduzco un dato que no sea de tipo int en la variable edad?
Estoy intentando introducir un String en un int, como es lógico, esto produce un error:

Error de consola
Introduce tu edad
Esto no es un int
Exception in thread "main" java.util.InputMismatchException
 at java.util.Scanner.throwFor(Unknown Source)
 at java.util.Scanner.next(Unknown Source)
 at java.util.Scanner.nextInt(Unknown Source)
 at java.util.Scanner.nextInt(Unknown Source)
 at paquetes_java.main(paquetes_java.java:11)

¿Y si quiero cambiar el tipo de dato para que no me de este error?
Puedes hacerlo, cambiando el tipo de dato de la variable a String  y el .nextInt() por .next().


import java.util.Scanner;

public class condicional_if {

   public static void main(String[] args) {

       Scanner introducir=new Scanner(System.in);
       
       System.out.println("Introduce tu nombre");
       
       String nombre = introducir.next();
      
       System.out.println("Bienvenido a mi blog, " + nombre + ".");
       
     }
}

Resultado
String java next java.util.Scanner
Espero que te haya quedado claro el uso del condicional if, else. En el siguiente tutorial veremos como funciona else if para añadir más de dos condiciones.


0 comentarios:

Publicar un comentario

Si te a gustado o necesitas ayuda, tus comentarios son agradecidos :D