Blog

Categorías

X Cerrar

Categorías

Estructuras de control - Nociones de programación

Abr 28 2017 | Programación, Web

Como ya es sabido, los programas se ejecutan de manera secuencial de arriba hacia abajo, lo que les da una linealidad que en muchas ocasiones es necesario romper para ejecutar bloques de código dependiendo de las necesidades en un momento definido. Las estructuras de control permiten este comportamiento y pueden ser de varios tipos. Para efectos de esta serie se tratarán principalmente dos: Las de selección y las iterativas, estas últimas serán tratadas en la próxima publicación.

Dentro de las estructuras de control de selección se encuentra la estructura if - then. Su funcionamiento depende de una condición que devuelve un valor booleano (true o false) y dichas condiciones se construyen por medio de operadores. Estas estructuras deben construirse con por lo menos dos elementos: el primero la condición en sí, que al evaluarse define si se ejecuta o no un bloque de código dependiendo del valor devuelto. El segundo elemento es el bloque de código a ejecutar siempre y cuando la condición se cumpla.

Existe una variación de esta estructura: la if - then - else. Su construcción es similar a la anterior, salvo que en esta variación además de contar con la condición y el bloque de código que se ejecuta cuando esta se cumple, debe definirse otro bloque de código que se ejecuta cuando la condición no se cumple.

Estructuras de Control
Estructura if - then / Estructura if - then -else

A continuación, ejemplos de estructuras if-then e if-then-else.

int edad = 18;
if (edad >= 18) {
  printf("Es mayor de edad");
}
bool administrador = true;
if (administrador) {
  printf("Sea usted bievenid@");
} else {
  printf("Usted no tiene acceso");
}

Nótese que en el segundo ejemplo no se utilizó el operador de comparación (==). Por defecto una estructura de control if dentro de su condición espera un valor booleano. En este caso en particular la variable administrador es de tipo booleano y puede ser evaluado directamente. Si se coloca la expresión completa en la condición (administrador == true) puede resultar redundante pero no genera un error.

En casos donde se necesite realizar instrucciones simples como la asignación de valores a una variable dependiendo de una condición puede hacerse uso del operador ternario, que es una especie de abreviatura del operador if. La estructura para este operador es la siguiente:

(expresión booleana o condición) ? valor si cierto : valor si falso

Tomando el ejemplo anterior (del administrador), la versión utilizando el operador ternario sería:

bool administrador = true;
char mensaje[20] = "";
mensaje = (administrador) ? "Sea usted bievenid@" : "Usted no tiene acceso";
printf("%s", mensaje);

La estructura if puede ser encadenada para realizar una secuencia de comparaciones y sólo uno de los bloques de código será ejecutado.

int edad = 18;
if (edad < 18) {
  printf("Eres adolescente");
} else if (edad >= 18 && edad <= 35) {
  printf("Eres joven");
} else if (edad >35 && edad <= 50) {
  printf("Eres maduro");
} else {
  printf("Eres mayor");
}

Existe otra estructura llamada switch case, esta permite ejecutar un bloque de código evaluando una expresión, que luego es comparada con una lista de posibles valores esperados, una vez es encontrada una coincidencia, son ejecutadas las instrucciones correspondientes y se continúa el flujo normal de ejecución hasta la siguiente comparación. Si no se desea seguir comparando una vez se halle una coincidencia, se debe hacer uso de la palabra reservada break. En caso de no encontrarse ninguna coincidencia, es posible ejecutar instrucciones por defecto haciendo uso de default.

int opcion = 3;
switch (opcion) {
  case 0: printf("Salir");
           break;
  case 1: printf("Agregar");
           break;
  case 2: printf("Editar");
           break;
  case 3: printf("Borrar");
           break;
  default: printf("Opción inválida");
}

Por el momento es todo, muchas gracias a quienes ha estado siguiendo la Serie JavaScript. Recuerden cualquier duda o sugerencia pueden expresarla en la caja de comentarios. Nos leemos. ¡Saludos!