Ir al contenido principal

Java Tip 11: Estructuras de control

En Java tenemos tres estructuras de control:

  1. Secuencial (top-down)
  2. Selectiva (if, if-else, if-elseif-else, switch,"operador Elvis")
  3. Repetitivas (for, do-while, while, "for each")
La más sencilla es la secuencial, es la que escribimos de arriba hacia abajo.

{
  instrucción
  instrucción
  instrucción
  ...
}

{ denota el inicio de una declaración y } el fin de la misma:

{
  int entero = 80;
  char car = '\u0099';
  boolean verdadero = 45>0 || 33>=100;//true
  Integer numero = null;// correcto: Integer es una subclase de Object 
  //...
}

Estructuras de control selectivas: Las que nos ayudan a tomar decisiones lógicas, se evalua una condición y de acuerdo a su resultado (true o false) se realiza una determinada secuencia de instrucciones.

Instrucción if

if(booleanExpression) { 
    //Executes when booleanExpression holds true  
} 
else if(booleanExpression2) { 
    //Executes when booleanExpression2 holds true
} 
else { 
    //Executes when neither booleanExpression nor booleanExpression2 are true
}

Con las estructuras de control selectivas debemos tener cierto cuidado.

int entero = 2;

/*Esto causará un error:
  if no puede recibir un int, solo un boolean
*/
if(entero){
   //Hacer algo
}

/*
verdadero es true

23 == 100 es false

false or true da true

*/
boolean verdadero =( (23 == 100) || true );

/*
 ahora verdadero vale false
*/
if(verdadero = false){
  //Hacer algo
}

Instrucción switch
switch(variable) { 
    case valueOne: 
        //statements 
        break; 
    case valueTwo: 
        //statements
        break; 
    default: //optional
    //statements
}

Tipos de datos admitidos: byte, short, int, long, char y String.


enum Dias{
   LUNES("LUNES"), MARTES("MARTES"),MIERCOLES("MIERCOLES"),JUEVES("JUEVES"),VIERNES("VIERNES"),SABADO("SABADO"),DOMINGO("DOMINGO");
 //...
}

//Main
Dias dia = Dias.LUNES;

switch(dia){
  DOMINGO: System.out.println("DOMINGO");break;
  LUNES: System.out.println("LUNES");break;
  //...
  default:System.out.println("");break;
  //...
}

Nota: switch no admite double,float y/o boolean.


Las estructuras de control iterativas son en las que efectúan una serie de instrucciones de manera repetitiva.

Sentencias do-while y while

/*En do-while se la condición se evalua al final*/
int contador = 0, suma = 0;
System.out.println("\t***do-while***\n");

do{
  suma += contador;
  System.out.printf("%d,",suma);
  contador++;
}while(contador < MAX);
System.out.printf("\nSuma: %d\n",suma);


/*En while se la condición se evalua al principio*/
suma = 0; contador = 0;
System.out.println("\t***while***\n");
while(contador < MAX){
  suma += contador;
  System.out.printf("%d,",suma);
  contador++;
}
System.out.printf("\nSuma: %d\n",suma);

Operador Elvis, básicamente un if-else más "elegante".

String booleano = "Verde".equals("Verde")? "Verde" : "Otro color";



Es importante entender que if-elseif, while sólo aceptan expresiones booleanas. Por ejemplo, esto no compilará:

/*Esto no compilará*/

if("true"){
 //...
}else if("Verdadero"){
  //...
}

else{
  //...
}

while("Hola"){
  //...
}

Sentencia for
for(inicialización; condición; actualizaión) {
    //instrucciones
}

Sentencia "for each"

for(Tipo elemento: coleccion) {
    //instrucciones
}

Ejemplo:

final int TAM = 100;
for(int n = 0; n < TAM; n++) { 
    System.out.println(n); 
} 


Es todo por el momento.

Links:
http://teoriasdelosalgoritmo.blogspot.com/2013/02/estructura-de-control-repetitiva-grupo-7.html
http://teoriasdelosalgoritmo.blogspot.com/2013/02/estructura-de-control-selectiva.html
https://syntaxdb.com

Comentarios

Entradas populares de este blog

Java Tip 1: Importaciones por default

Tip 1 : Todas las clases del paquete java.lang se importan por defecto. Podríamos hacer algo como esto: import java.lang.System ; import java.lang.String ; import java.lang.Boolean ; import java.lang.Integer ; import java.lang.Short ; import java.lang.StringBuilder ; import java.lang.StringBuffer ; O cosas (aberrantes) como: //Traernos todas las clases del paquete java.lang import java.lang.* ; Sin embargo, no es necesario. Repitamos esto como un mantra: Todas las clases del paquete  java.lang  se importan por defecto, no es necesario escribir de más .

Java Tip 28: hilos virtuales en Java

Con Java 21 entra un nuevo concepto: hilos virtuales java ( Java Virtual Threads ).  La cual es una nueva característica que nos permite crear miles o millones de hilos (tareas en paralelo). Los cuales se diferencian de los hilos comunes ( Platform Threads ) al no depender del sistema operativo , puesto que son virtuales. De estos se encargará la JVM. Al usar hilos virtuales ahorramos recursos del procesador y de memoria del sistema , sin importar si estamos creando y/o usando miles o millones. Los hilos virtuales son ideales para aplicaciones modernas donde se requiere esperar y recibir respuestas o acceder a bases de datos remotas, entre otras cosas. Además no impide usar los hilos comunes que dependen del sistema operativo. Observemos un ejemplo de uso de hilos virtuales. VirtualThreadsDemo.java package com.comunidad.demo; public class VirtualThreadsDemo { public static void main (String [] args) throws InterruptedException { // Crear un Virtual Th...

Java Tip 20: JDBC (2da parte)

Continuamos con esta serie sobre JDBC . Como dijimos la vez anterior JDBC( Java Database Connectivity ) es el estándar de conectividad de bases de datos de Java y proporciona un mecanismo para que los programas Java se conecten a las bases de datos. En este post veremos ejemplos de su uso. Requisitos: Tener nociones de Java.  Tener nociones de SQL (usaremos H2). Tener nociones de Maven. Creando una aplicación JDBC Crearemos una sencilla aplicación que se conecte a una BD H2 (ver  tutorial ). Pasos: Crearemos una tabla a la que llamaremos Cursos. La cual tendrá los siguientes campos: id, titulo, materia, instructor, fecha y hora. Crear la aplicación Java usando Maven. Crearemos instrucciones SQL para consultar la información, ingresar nuevos cursos, actualizar y eliminar registros. Ejecutar la aplicación con Maven. 1. Creamos la tabla con sus seis campos (agregaremos los datos con la aplicación Java): CREATE OR REPLACE TABLE CURSOS( id bigint ...