Sentencias de Control

Las sentencias de control son una manera fancy de hablar de los bucles (secciones de nuestro código que se repiten muchas veces)  y las selectivas (cuando el programa decide ejecutar una u otra sección dependiendo de una decisión) así que empecemos por la primera ¿va?

meme.jpeg

Sentencias Selectivas

IF

La más famosa y fundamental es los IF´s, estos permiten al programa con base si una condición es cierta ejecutar un bloque de código o no hacerlo.

Se ven así:

Diferentes sintaxis de IF

//FORMA BÁSICA
if(condicion){
  sentenciasSiEsVerdad;
}

//COMO OPERADOR TERNARIO
(condicion)? sentenciaVerdad:sentenciaFalsa;

//FORMA IF-ELSE
if(condicion){
  sentenciasSiEsVerdad;
}
else{
  sentenciasSiEsFalso;
}

//FORMA IF-ELSE IF- ELSE
if(condicion1){
  sentenciasSiEsVerdad1;
}
else if(condicion2){
  sentenciasSiEsVerdad2;
}
else if(condicion3){
  sentenciasSiEsVerdad3;
}
else{
  sentenciasSiEsFalsoTodo;
}

Operadores de Comparación

Lo que va dentro de condición, es muy fácil, es una pregunta que tu le harás a la máquina que podrá contestar como un sí o un no.

Deja primero mostrarte qué operadores pueden comparar:

  • != No igual
  • == Igual
  • < Menor que
  • > Mayor que
  • && And
  • || Or
  • <= Menor o igual que
  • >= Mayor o igual que

Otra cosa muy útil de saber es que para C, cualquier valor que sea distinto de cero es verdadero, siendo por tanto falso sólo si el valor cero.

Por lo tanto será verdad siempre que el valor de la variable x sea distinto de cero, sea cual sea el tipo de la variable x.

Por lo tanto podemos terminar con algunos ejemplos de condiciones:

//Ejemplo 1
double pi = 3;
int variableBasura;

if(pi < 4){
  variableBasura = 0;
}

//Ejemplo 2
int numero = 3;

if( numero != 3 ){
  printf("Nunca se va a ejecutar esto");
}

//Ejemplo 3
int condicion = 0;

if(condicion!){
  printf("Esto siempre se va a ejecutar");
}

Así es como la mayoría de los programas que conoces funcionan, veamos ahora la siguiente:

Switch

Son básicamente igual a los if, simplemente que con otra sintaxis (si, se que hay más diferencias técnicas pero no importa), aquí su sintaxis:

switch (variable){
  case const1:
    sentencia;
    ...
    break;

  case const2:
    sentencia;
    ...
    break;

  ...

  default:
   sentencia;
}

Y si, eso es un switch, (¿Ves que no muerde?), total, esta sintaxis de ahí arriba se puede entender muy fácil si te muestro un código con if´s que haría exactamente lo mismo, se vería así:

if(variable == const1){
    sentencia;
    ...
}
else if(variable == const1){
    sentencia;
    ...
}
else if(variable == const2){
    sentencia;
    ...
}
else{
    sentencia;
    ...
}

Ahora vamos a ver un segundo tipo de sentencias de control, los bucles : 3


Bubles

WHILE

Este es sin menor duda la forma más básica de un bucle, lo único que hace es que ejecuta un bloque de código una y otra vez mientras una condición sea verdad.

while (condicion){
  sentencias;
}

No puede ser tan fácil, ¿o sí?…
La verdad es que lo es, es por eso que es el bucle más poderoso, pero la verdad es que mucha gente lo acaba usando es un estilo más o menos así:

int i = 0;             //Este es nuestro contador
while (i < tope){   //Lo vamos a seguir haciendo tope veces
  sentencias;          //Ejecutamos algo
i++;                   //Aumentamos el contador en uno
}

Pero el problema es que como te das cuenta resulta poner mucho código para repetir cosas, por eso se inventó un nuevo bucle.

FOR

Este es lo mismo que el bucle while, simplemente con otra sintaxis, es más esta es la sintaxis:

for (inicialización; condición; incremento){
  sentencia;
}

Así el último código que vimos con los whiles, se vería así con for:

for (i=0; i<tope; i++){
  sentencia;
}

Mucho más bonito y organizado ¿verdad?

Perfecto, ya casi terminamos, ya solo falta el final, te mostraré el último bucle, el do while.

DO WHILE

Al contrario que los bucles for y while que comprueban la condición en lo alto de la misma, el bucle do/while comprueba la condición en la parte baja del mismo, lo cual provoca que el bucle se ejecute como mínimo una vez. La sintaxis del bucle do/while es:

do{
  sentencia;
}
while(condicion);

Break y Continue

Las sentencias de control break y continue permiten modificar y controlar la ejecución de los bucles anteriormente descritos.

  • La sentencia break provoca la salida del bucle en el cual se encuentra y la ejecución de la sentencia que se encuentra a continuación del bucle.
  • La sentencia continue provoca que el programa vaya directamente a comprobar la condición del bucle en los bucles while y do/while, o bien, que ejecute el incremento y después compruebe la condición en el caso del bucle for.
btn1 btn
btn

2 comentarios sobre “Sentencias de Control

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s