CONTACTO

Encuentra informaci贸n referente a la programaci贸n, dise帽o gr谩fico, electr贸nica y mucho m谩s, la p谩gina est谩 pensada para compartir contenido educativo relevante coadyuvando a su aprendizaje diario.


Estructuras de control de Java

Las estructuras de control de Java son utilizadas para colocar controles a nuestros programas, podemos dividirlas en estructuras secuencial, condicional o selectiva y repetitiva o iterativa, su uso depender谩 del tipo de programa que realicemos.

Estructura Secuencial de Java

Si bien muchos no toman en cuenta este tipo de estructura porque lo ejecutamos en cada uno de nuestros programas de manera predeterminada, porque si analizamos nuestros programas en Java siempre siguen una secuencia, es decir las instrucciones se ejecutan una detr谩s de otra en el orden que aparece en nuestro programa.

Estas instrucciones est谩n separadas por un punto y coma ( ; ) y todas estas instrucciones de Java est谩n agrupadas en bloques utilizando la llave de apertura ( { ) para iniciar el bloque y para finalizar con el bloque se utiliza la llave de cierre ( } )

Ejemplo de una estructura secuencial de Java

//Programa para transformar grados Celsius a Fahrenheit y Kelvin
/**
 *
 * @author Creatividad Codificada
 */
public class EstructuraSecuencial {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner en = new Scanner(System.in);
        double celsius, fahrenheit, kelvin;
        System.out.println("PROGRAMA PARA TRANSFORMAR GRADOS CELSIUS A FAHRENHEIT Y KELVIN");
        System.out.println("Introduce una temperatura en 潞C");
        celsius = en.nextDouble();
        // Realizamos la formula para transformar de C潞 a F
        fahrenheit = celsius*9/5+32;
        // REalizamos la formula para transformar de C潞 a K 0 掳C + 273.15 = 273,15 K
        kelvin = celsius + 273.15;
        // mostramos el resultado
        System.out.print(celsius+" 潞C equivale a "+fahrenheit+" Fahrenheit o ");
        System.out.println(kelvin+ " Kelvin");
    }
    
}

Resultado

Introduce una temperatura en 潞C
32
32.0 潞C equivale a 89.6 Fahrenheit o 305.15 Kelvin

Estructura de control condicional o selectivo en Java

Estas estructuras de control condicional son utilizadas para realizar comparaciones y tomar alguna decisi贸n dependiendo del planteamiento del problema.

En Java existe distintas estructuras de control selectivas como: if, else, switch, su uso es relativamente sencillo.

Estructura de control if-else en Java

Nos da la posibilidad de crear estructuras condicionales para que se ejecute una instrucci贸n en caso que cumpla la condici贸n y otra en caso que no cumpla.

Son muy usados cuando deseamos a hacer comparaciones sencillas, cunado usamos la instrucci贸n if debemos poner una condici贸n y si cumple dicha condici贸n se ejecutara una o varias instrucciones dependiendo de nuestro programa en Java, utilizar la instrucci贸n else es opcional, su sintaxis en muy f谩cil de entender.

Sintaxis

if (condici贸n) {
//instrucciones que se ejecutan si la condici贸n es true
}
else {
//instrucciones que se ejecutan si la condici贸n es false
}

Cuando realizamos programas m谩s complejos podemos trabajar anidando estas estructuras es decir, que podemos declarar un if dentro otro if o cualquier otro forma de anidaci贸n que se lo requiera, de modo que se podr谩n comprobar distintas condiciones en nuestro programa.

Sintaxis

if (condici贸n) {
  	//instrucciones que se ejecutan si la condici贸n es true
        if (condici贸n) {
        //instrucciones que se ejecutan si la condici贸n es true
        }
        else {
        //instrucciones que se ejecutan si la condici贸n es false
        }
}
else {
       //instrucciones que se ejecutan si la condici贸n es false
       if (condici贸n) {
       //instrucciones que se ejecutan si la condici贸n es true
       }
       else {
       //instrucciones que se ejecutan si la condici贸n es false
       }
}

Ejemplo de una estructura condicional

 import java.util.Scanner;
/**
 *
 * @author Creatividad Codificada
 */
public class EstructuraSelectiva {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner en = new Scanner(System.in);
        int n1, n2, n3, res;
        System.out.println("PROGRAMA PARA ENCONTRAR EL NUMERO MAYOR ENTRE TRES NUMEROS");
        System.out.print("Introduzca tu primer n煤mero: ");
        n1 = en.nextInt();
        System.out.print("Introduzca tu segundo n煤mero: ");
        n2 = en.nextInt();
        System.out.print("Introduzca tu tercer n煤mero: ");
        n3 = en.nextInt();
        //ANIDAMIENTO DE ESTRUCTURAS SELECTIVAS
        if (n1 > n2) {
            if (n1 > n3) {
                System.out.println("El n煤mero mayor es: " + n1);
            } else {
                System.out.println("El n煤mero mayor es: " + n3);
            }
        } else if (n2 > n3) {
            System.out.println("El n煤mero mayor es: " + n2);
        } else {
            System.out.println("El n煤mero mayor es: " + n3);
        }
        // OPERADORES TERNARIOS
        System.out.println();
        res = n1>n2? (n1>n3?n1:(n2>n3?n2:n3)) : (n2>n3?n2:n3);
        System.out.println("RESUELTO CON OPERADORES TERNARIOS DE JAVA");
        System.out.println("El n煤mero mayor es: " + res);
    }
    
}

Resultado

PROGRAMA PARA ENCONTRAR EL NUMERO MAYOR ENTRE TRES NUMEROS
Introduzca tu primer n煤mero: 8
Introduzca tu segundo n煤mero: 5
Introduzca tu tercer n煤mero: 9
El n煤mero mayor es: 9

RESUELTO CON OPERADORES TERNARIOS DE JAVA
El n煤mero mayor es: 9

Estructura de control selectiva switch de Java

Esta estructura condicional es utilizada cuando requerimos evaluar varios valores al mismo tiempo, si bien podemos utilizar varios if anidadas para evaluar varios valores al mismo tiempo lo m谩s correcto es utilizar un switch.

Sintaxis

 switch (expresi贸n) {
 case valor1:
 //sentencias si la expresi贸n es igual al valor1;
 [break]
 case valor2:
 //sentencias si la expresi贸n es igual al valor2;
 [break]
 .
 .
 .
 default:
 //sentencias que se ejecutan si no se cumple ninguna
 //de las anteriores
 } 

Esta expresi贸n se declara junto a la instrucci贸n de switch entre par茅ntesis, los case contienen un valor que es comparado con la expresi贸n que eval煤a switch, si la expresi贸n es correcta se procede a ejecutar las instrucciones declaradas.

La instrucci贸n break se utiliza para salir del switch, la instrucci贸n default se usa para ejecutar instrucciones en caso de que ning煤n case cumpla con la condici贸n del switch.

Ejemplo de una estructura de control selectiva en Java

import java.util.Scanner;
/**
 *
 * @author Creatividad Codificada
 */
public class EstructuraSecuencialSwitch {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        byte diasemana;
        String dia;
        Scanner en = new Scanner(System.in);
        System.out.println("Ingresa un n煤mero del 1 al 7");
        System.out.println("Para determinar que dia de la semana es");
        diasemana = en.nextByte();// diasemana recibe un valor desde teclado
        switch (diasemana) { //SE evalua su valor de diasemana
        case 1:
        dia="Lunes";
            break;
        case 2:
        dia="Martes";
            break;
        case 3:
        dia="Mi茅rcoles";
            break;
        case 4:
        dia="Jueves";
            break;
        case 5:
        dia="Viernes";
            break;
        case 6:
        dia="S谩bado";
            break;
        case 7:
        dia="Domingo";
            break;
        default:
            dia="No existe ese dia";
        }
        System.out.println("Selecciono el dia : "+dia);
    }
}

Resultado

Ingresa un n煤mero del 1 al 7
Para determinar que dia de la semana es
5
Selecciono el dia : Viernes

Estructuras de control repetitivas o iterativas de Java

Estas instrucciones son usadas para trabajar con bucles, es decir que se repiten una y otra vez un conjunto de instrucciones seg煤n lo hayamos declarado en nuestro programa.

Existen tres estructuras de control repetitivas o iterativas y son: while, do while y for.

Estructura de control repetitiva while

EL bucle while agrupa un conjunto de instrucciones que se ejecutan mientras cumpla la condici贸n que es evaluada en cada repetici贸n.

Al estar al principio la condici贸n a ser evaluada cumple como una especie de cerrojo puesto que si no cumple la condici贸n nunca entrara al bucle.

Sistaxis

while (condici贸n) {
//sentencias que se ejecutan si la condici贸n es true
}  

Ejemplo de una estructura repetitiva while

import java.util.Scanner;
/**
 *
 * @author Creatividad Codificada
 */
public class EstructuraRepetitivaWhile {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        //factorial de n! = n 脳 (n-1)!
        long x, factorial=1, temporal;
        Scanner en = new Scanner(System.in);
        System.out.println("Ingrese un n煤mero para encontrar su factorial");
        x = en.nextLong();
        temporal=x;
        while (temporal>0) {
        factorial*=temporal--;
        }
        System.out.println("Su factorial de "+x+" = "+ factorial);
    }
}

Resultado

Ingrese un n煤mero para encontrar su factorial
15
Su factorial de 15 = 1307674368000

Estructura de control repetitiva do while

Al igual que while crea un bucle para ejecutar un conjunto de instrucciones hasta que la condici贸n que es evaluada sea falsa, la diferencia est谩 en que la condici贸n se eval煤a al final del bucle, lo cual significa que por lo menos en una ocasi贸n entrara al bucle en caso de que la condici贸n sea falsa.

Sintaxis

do {
 instrucciones
 } while (condici贸n)

Ejemplo de una estructura de control repetitiva de Java

import java.util.Scanner;
/**
 *
 * @author Creatividad Codificada
 */
public class EstructuraRepetitivaDoWhile {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        byte opcion;
        String menu;
        Scanner en = new Scanner(System.in);
        do{
            menu="";
            menu+="****** Men煤 ******\n";
            menu+="1.- Leer primer mensaje \n";
            menu+="2.- Leer segundo mensaje \n";
            menu+="0.- Salir \n";
            menu+="Elia una opci贸n: ";
            System.out.println(menu);
            opcion=en.nextByte();
            switch(opcion){
            case 1:
                System.out.println("El aprendizaje nunca cansa a la mente \n");
                break;
            case 2:
                System.out.println("Estudia no para saber una cosa m谩s, sino para saberla mejor \n");
                break;    
            default:
                System.out.println("No existe esta opci贸n, intenta otra vez \n");
            }
        }while(opcion!=0);
    }
    
}

Respuesta

****** Men煤 ******
1.- Leer primer mensaje 
2.- Leer segundo mensaje 
0.- Salir 
Elia una opci贸n:

Estructura de control repetitiva o Iterativa for

Este tipo de estructura de control repetitiva es muy usado cuando trabajamos con matrices, su funcionamiento es similar al while puesto que la condici贸n a ser evaluada se la declara al principio.

Sintaxis

for (expresi贸nInicial; condici贸n; incremento / decremento) {
instrucciones;
}

En la primera expresi贸n solo se ejecuta solo una vez al iniciar el bucle for, es utilizado para dar un valor inicial al contador del bucle.

En la segunda expresi贸n de coloca la condici贸n que ser谩 evaluada en cada iteraci贸n, esta condici贸n puede ser cualquier expresi贸n que devuelva un valor l贸gico, adem谩s esta ser谩 quien determine si acaba o no el bucle puesto que para que contin煤e el bucle debe cumplir con esta condici贸n y en caso de no cumplir se acaba el bucle.

El en la tercera expresi贸n usualmente es un contador hace un incremento o decremento en cada vuelta del bucle dependiendo de las instrucciones declaradas, este valor es necesario para comparar en la condici贸n del bucle for, si no est谩 dentro los par谩metros de la condici贸n el bucle terminara.

Ejemplo de una estructura de control repetitiva en Java

import java.util.Scanner;
/**
 *
 * @author Creatividad Codificada
 */
public class EstructuraRepetitivaFor {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int num,res;
        Scanner en = new Scanner(System.in);
        System.out.println("TABLA DE MULTIPLICAR" );
        System.out.print("Ingrese un n煤mero para saber su ");
        System.out.println("tabla de multiplicar ");
        num = en.nextInt();
        for(byte i = 0; i<=10; i++){
            res=num*i;
            System.out.println(num+" X "+i+" = "+res);
        }
    }
}

Resultado

TABLA DE MULTIPLICAR
 Ingrese un n煤mero para saber su tabla de multiplicar 
 129
 129 X 0 = 0
 129 X 1 = 129
 129 X 2 = 258
 129 X 3 = 387
 129 X 4 = 516
 129 X 5 = 645
 129 X 6 = 774
 129 X 7 = 903
 129 X 8 = 1032
 129 X 9 = 1161
 129 X 10 = 1290

Estructuras de control repetitivas anidadas

Son bucles que contienen en su interior uno u varios bucles, podemos utilizar un while, do while o un for, tiene infinidad de aplicaciones, si bien parece complicado lo real es que a mi parecer es algo que nos hace pensar m谩s all谩 de la forma cotidiana porque nos presiona a pensar en varias dimensiones.

Ejemplo de una estructura repetitiva anidada

/**
 *
 * @author Creatividad Codificada
 */
public class EstructuraRepetitivaAnidada {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        byte tamanio = 9; //cambia el tama帽o del Rombo
        byte aux = tamanio;
        String impresion=" ";  
        //Parte superior del rombo
        for (byte i = 1; i <= tamanio; i++) { 
            for (byte j = aux; j>=1; j--) 
            { 
                impresion = impresion + " "; 
            } 
            byte acum = i; 
            acum = (byte) (2*acum-1); 
            for(int j=1; j<=acum;j++) 
            { 
                impresion += "@"; 
            } 
            System.out.println(impresion); 
            impresion = " "; 
            aux --; 
        }
            // Parte inferior del rombo
        for (byte i = (byte) (tamanio+1); i >= 0; i--) { 
            for (byte j = 1; j<=aux; j++) 
            { 
                impresion = impresion + " "; 
            } 
            byte acum = i; 
            acum = (byte) (2*acum-1); 
            for(byte j=acum; j>=1;j--) 
            { 
                impresion += "@"; 
            } 
            System.out.println(impresion); 
            impresion = " "; 
            aux ++; 
        }	
    } 
}

Resultado

          @
         @@@
        @@@@@
       @@@@@@@
      @@@@@@@@@
     @@@@@@@@@@@
    @@@@@@@@@@@@@
   @@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@@@
   @@@@@@@@@@@@@@@
    @@@@@@@@@@@@@
     @@@@@@@@@@@
      @@@@@@@@@
       @@@@@@@
        @@@@@
         @@@
          @

Comentarios

Su direcci贸n de email no sera publicado. Los campos obligatorios est谩n marcados con *.