Ticker

6/recent/ticker-posts

Estructuras selectivas: simple, doble y múltiple.

 Las estructuras selectivas son las que nos ayudan a que nuestro programa tome distintos rumbos según la toma de decisiones. Estas estructuras permiten que durante la ejecución de nuestro programa, se pueda tomar un camino u otro según la interacción del usuario. 



Estructuras selectivas: simple, doble y múltiple. 


Simple:

Las estructuras selectivas simples, son las que se componen nada más de una condición, si esta condición se cumple se ejecuta lo que hay dentro de ella, si no, no hace nada. Para este tipo de estructura, en java tenemos la condición if. Si esto se cumple, haz esto, si no, no hagas nada.

Fórmula de la sentencia if en java:

sentencia - condición () - llaves {}

    if            (condición) -    {}

if (condición) {

    acción;

}

Ahora veamoslo con un ejemplo: 

Para este ejemplo, haremos un pequeño sistema que valida si una persona es mayor de edad o no. Y este programa es perfecto para introducir un nuevo elemento de la API de Java, el Scanner.

¿Para qué sirve Java Scanner?

El objeto Scanner es una de las clases que nos incluye Java, este viene dentro de la librería util y necesitamos importarla. El Scanner nos sirve para la entrada de datos por teclado, es decir, para introducir nosotros, o un usuario, los datos que el programa le pida, en este ejemplo le pediremos al usuario que tecleé su edad para saber si es mayor de edad o no.

Como importar librerías en Java


Primero necesitamos importar la librería util, para ello escribiremos la palabra reservada import, esto tiene que estar fuera de la clase principal, es decir debajo de donde dice el nombre del paquete, como se ve en el siguiente ejemplo: 

package primerproyecto;

import java.util.Scanner; //Aquí estamos importando la librería

public class PrimerProyecto {

    public static void main(String[] args) {
        
    }
    
}

De momento nos aparece en gris (en mi caso) porque es una librería que no estamos usando, es decir, la importamos y está ahí, pero no la estamos usando. Para usarla necesitamos instanciar la clase Scanner, aunque esto de instanciar es cosa de otro tema, quedémonos conque instanciar es como crear, veamoslo como que importar es tener la plastilina, e instanciar es crear un objeto con esa plastilina. 
La fórmula básica para instanciar un objeto/clase, es la siguiente: 

nombre de clase/objeto - nombre que le daremos - = - new - nombre de clase/objeto() - ;

        Scanner                 -               entrada            - = - new Scanner(System.in);

Scanner entrada= new Scanner(System.in); 

Si eres observador, verás que después de escribir "new" Escribimos nuevamente el nombre de la clase pero ahora con paréntesis, esto quiere decir que realmente no estamos poniendo el nombre de la clase, si no que estamos llamando a un método, es el método constructor, que veremos más adelante en la programación orientada a objetos. El argumento que recibe "System.in" se refiere a la entrada de datos.

Iremos usando el Scanner y descubriendo sus propiedades según avancemos el curso, de momento solo utilizaremos uno de sus métodos, el método nextInt(). Ahora sí, construyamos nuestro ejemplo.

Después de instanciar nuestro objeto Scanner, creamos una variable de tipo entero para guardar la edad del usuario. A esta variable no le asignamos valor.

Después, mediante un System.out.println le informamos al usuario que debe ingresar su edad.
El método nextInt() hace referencia a entrada de datos de tipo entero, así que el usuario debe ingresar solo valores numéricos. Igualamos nuestra variable edad a lo que el usuario ingrese, esto lo hacemos con el operador de igual "=" y después indicamos el nombre de nuestro objeto Scanner, es decir, entrada, seguido escribimos un punto (.) y veremos que hay muchos métodos de la clase Scanner, escribimos después del punto "next" y nos saldrán los métodos que lleven este nombre, podemos buscar en el intellisense el método que buscamos o podemos terminar de escribirlo nosotros mismos.

Finalmente, utilizamos la sentencia if, y en su condición ponemos que si la edad es mayor o igual a 18 ejecute lo que está dentro de los paréntesis del if, que será un mensaje por consola indicando que el usuario sí es mayor de edad.

package primerproyecto;

import java.util.Scanner; //Importando clase Scanner

public class PrimerProyecto {
    
    public static void main(String[] args) {
        
        Scanner entrada = new Scanner(System.in); //Instanciando clase scanner

        int edad; //variable para guardar la edad
        
        System.out.println("Ingrese su edad: ");
        edad = entrada.nextInt(); //igualamos la variable edad a lo que el usuario ingrese por consola 
                                                //debe ser un entero ya que usamos el método nextInt()
        
        if(edad >= 18) { //Si la edad ingresada por el usuario es mayor o igual a 18
            
            System.out.println("Usted es mayor de edad"); //Imprimimos el mensaje al usuario
            
        } //fin del if
        
    }
    
}


Dobles

Las estructuras selectivas dobles son un poco más complejas, pero solo un poco. Éstas en lugar de llevar el flujo de nuestro programa hacia un lado, lo lleva hacia dos lados. En el ejemplo anterior vimos como si se cumplía una condición, se ejecutaba lo que había dentro de nuestro if, pero si no se cumplía no ocurría nada, para cambiar eso debemos agregar una sentencia más justo después de la llave del cierre del if.

La nueva sentencia que añadiremos será el else (sino), que indica que si la condición del if no se cumple, haga lo que esté dentro de él. A nuestro programa anterior, le añadiremos un else para el caso en el que el usuario no sea mayor de edad.

package primerproyecto;

import java.util.Scanner

public class PrimerProyecto {
    
    public static void main(String[] args) {
        
        Scanner entrada = new Scanner(System.in); 

        int edad//variable para guardar la edad
        
        System.out.println("Ingrese su edad: ");
        edad entrada.nextInt(); 
                                               
        
        if(edad >= 18) { //Si la edad ingresada por el usuario es mayor o igual a 18
            
            System.out.println("Usted es mayor de edad"); 
            
        }else { //añadimos el else después de que acaba el if
            
            System.out.println("Usted no es mayor de edad"); 
            
        } //Fin del else
        
    }
    
}

Múltiple


Con la sentencia múltiple, indicamos que el flujo de nuestro programa puede tomar distintos caminos. Para este tipo de estructura tenemos una sentencia muy útil llamada switch case, esta sentencia evalúa una condición y luego mediante casos determina el camino a seguir. 

La fórmula del switch case es la siguiente:

Sentencia - condición () - { casos }

 switch(condicion) { 
     case1: 
         accion
         break;
     case2: 
        accion
        break;
    default:
        accion incorrecta
        break;
}

notarás que lleva una palabra reservada nueva, el break, este nos ayuda a que cuando acabamos el código que va dentro de una case, se salga y no se repita en un bucle, importante poner este break; al final de cada caso. Ademas que al final debemos añadir el case default, que indica que no existe una acción para la condición que estamos evaluando.

Veamos como funciona el switch con un pequeño ejemplo en el cual le pediremos al usuario que digite un día de la semana, y según el día que digite imprimiremos por pantalla un mensaje u otro.

package primerproyecto;

import java.util.Scanner

public class PrimerProyecto {
    
    public static void main(String[] args) {
        
        Scanner entrada = new Scanner(System.in); 

        String dia//variable para guardar la edad
        
        System.out.println("Ingrese un día de la semana: ");
        dia entrada.next(); //método next() para guardar texto (String)

        switch (dia) { //evaluamos la variable día

            case "lunes": //El contenido de los casos está después de los : por eso debe llevar                                         //break
                System.out.println("Hoy es lunes");
                break;
            case "martes":
                System.out.println("Hoy es martes");
                break;
            case "miercoles":
                System.out.println("Hoy es miercoles");
                break;
            case "jueves":
                System.out.println("Hoy es jueves");
                break;
            case "viernes":
                System.out.println("Hoy es viernes");
                break;
            default:
                System.out.println("No existe la opción");
                break;

        } //Fin del switch

    }

}


Siguiente tema:









Publicar un comentario

0 Comentarios